区别
gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思。
layout_gravity 是LinearLayout 子元素的特有属性。
对于layout_gravity, 该属性用于设置控件相对于容器的对齐方式,可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。android:layout_gravity 只在 LinearLayout 和 FrameLayout 中有效
android:gravity 是设置该view里面的内容相对于该view的位置
演示效果一 、在layout_gravity在RelativeLayout中不起作用 (
android:layout_gravity 只在 LinearLayout 和 FrameLayout 中有效)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_pic1"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center"
android:src="@mipmap/p1"
/>
</RelativeLayout
演示效果二
在线性布局中,垂直方向 layout_gravity=center 在垂直方向显示不出效果
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_pic1"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center"
android:src="@mipmap/p1"
/>
</LinearLayout>
演示效果三
在线性不居中的水平方向,layout_gravity=center在水平方向显示不出效果
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_pic1"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center"
android:src="@mipmap/p1"
/>
</LinearLayout>
演示效果四
对于gravity = center,在上面的几个布局中不管是父布局线性布局变为水平布局还是改变orientation方向,不会影响到
android:gravity="center"所起到的作用