1、gravity和layout_gravity的区别
- android:gravity用于设置View中内容相对于View组件的对齐方式,比方说button上的文字相对button本身的位置;LinearLayout中组件相对于LinearLayout本身是居中还是靠右还是靠左;而android:layout_gravity用于设置View组件相对于Container(布局)的对齐方式,也就是这个组件相对于整个布局要设置的位置;简单来说,android.gravity是设置当前控件/布局上的子控件;而android.layout_gravity用于设置当前控件/布局相对于父组件/布局的显示位置;
- 假如父布局设置了gravity,那么子组件如果再设置layout_gravity,则会使父组件设置的gravity失效
layout_alignParentRight,当前组件与父组件右边缘对齐
android:scaleType=”fitCenter”,用于imageView,表示图片按比例放大或缩小,并充满imageView组件
2、设置一个组件靠右对齐
方法一 使用RelativeLayout,然后需要右对齐的组件里,设置layout_alignParentRight =”true”即可实现右对齐;
此外,android:layout_centerVertical=”true”可以使当前组件垂直方向居中方法二 使用LinearLayout,最后靠右的组件再使用一个LinearLayout包围起来,并在此LinearLayout种设置gravity=”right”,表示其子组件都是右对齐
我们可以将要右对齐的控件放在另一个LinearLayout中,同时将其对齐方式设为右对齐:android:gravity=”right”,还有一点,这个LinearLayout的宽度设为充满父控件:
android:layout_width=”fill_parent”。这样就行了。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg" android:orientation="horizontal" >
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="左边1" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="左边2" />
<!-- 将TextView包在另一个LinearLayout中 注意android:layout_width和android:gravity这两个属性 -->
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" >
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:text="右边" />
</LinearLayout>
</LinearLayout>
3、weight属性
如果要使用weight,那么则必须把width或者height设置为“0dp”,表明使用weight的另一种计算方法
4、LinearLayout
如果设置了gravity,则按照此设置了来计算子组件所占用的空间,否则直接按照从左到右,并且子组件再去设置layout_gravity也没有用了;按照自己的猜想,系统已经从左右到右把对应的空间设置好,你设置了靠右,其他空间就是那么大,所有视觉看起来也就没法再右了