记录一下,怕以后忘记:
属性说明:
android:gravity:
① RelativeLayout、LinearLayout,等容器的子View相对自身的位置。
PS:FrameLayout没有该属性,大家可以在XML文件中试试 - -…
② Button、TextView等有内容的View,其内容相对自身的位置。
PS:部分View也没有该属性,如ImageView。
android:layout_gravity:
自身相对父容器的位置
代码中设置相应属性:
android:gravity
调用控件的setGravity(int gravity);方法。
部分控件没有该,因为本身就不支持该属性的设置,上面已经列举了一些,可能不全面,大家用的的时候可以试试哈。
android:layout_gravity:
因为该属性的含义是相对父容器的位置,所以该属性没有直接放在控件类里,而是放在了容器类的内部类LayoutParams里(如RelativeLayout.LayoutParams);
贴个Gravity的代码,配置文件的就不写了:
package com.example.simplegravity;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.FrameLayout;import android.widget.TextView;/*** android:gravity 与 android:layout_gravity的区别*/public class SimpleGravityActivity extends Activity implements View.OnClickListener {private FrameLayout.LayoutParams tvLp;private FrameLayout.LayoutParams btnLp;private TextView textView;private FrameLayout frameLayout;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 父容器frameLayout = new FrameLayout(this);frameLayout.setBackgroundColor(Color.WHITE);setContentView(frameLayout);// 子ViewtextView = new TextView(this);textView.setBackgroundColor(Color.BLACK);textView.setTextColor(Color.WHITE);textView.setText("A");textView.setTextSize(22);//视图添加tvLp = new FrameLayout.LayoutParams(400, 400);frameLayout.addView(textView, tvLp);// 视图切换按钮Button btn = new Button(this);btn.setText("change gravity and layout_gravity");btnLp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);btnLp.gravity = Gravity.CENTER;// 其实这里用的就是android:layout_gravityframeLayout.addView(btn, btnLp);btn.setOnClickListener(this);}@Overridepublic void onClick(View v) {// 切换TextView相对父容器的位置(android:layout_gravity)tvLp.gravity = Gravity.RIGHT | Gravity.BOTTOM;// 切换TextView的内容相对自身的位置(android:gravity)textView.setGravity(Gravity.RIGHT | Gravity.BOTTOM);// 刷新视图textView.requestLayout();}}
gravity改变的前后对比图:
本人android新人,有不对的地方请多多指教。