当我删除重力属性时,图像将设置在右上角,但是当它使用时,它会在顶部留下填充,为什么重力会留下空间???? 在此处输入图像描述
android:gravity="center" ---> center_horizontal+center_vertical
center_vertical属性将填充保留在顶部。将其更改为center_horizontal将使视图/视图水平居中对齐,因此请使用
android:gravity="center_horizontal"
我想为什么要在imageview中使用layout_marginTop?没有必要设置.您可以在imageview上设置layout_gravity并在顶部线性布局中消除重力。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:src="@drawable/android_ic"
android:layout_gravity="center"
/>
</LinearLayout>
添加android:gravity="center"
后,整个布局将位于屏幕中央。由于您在imageView
下方添加了多个视图,因此已将其管理为具有一些空间的顶部。将其更改为android:gravity="center_horizontal"
,如果图像很小,请将高度设置为"wrap_content"而不是200dp,它也可能有额外的空间。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:src="@drawable/coffee"
/></LinearLayout>