当我删除重力属性时,图像将设置在右上角,但是当它使用时,它会在顶部留下填充物,为什么重力会留下空间? enter image description here
答案 0 :(得分:0)
android:gravity="center" ---> center_horizontal+center_vertical
center_vertical 属性将填充位于顶部。将其更改为center_horizontal会使视图/视图水平对齐中心,因此请使用
android:gravity="center_horizontal"
答案 1 :(得分:0)
我认为你为什么要在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>
答案 2 :(得分:0)
当您添加android:gravity="center"
后,您的整个布局将位于屏幕的中心。由于您已在imageView
下方添加了多个视图,因此已将其设置为位于顶部并留有一些空间。将其更改为android:gravity="center_horizontal"
,如果图像较小,则将高度设置为&#34; wrap_content&#34;而不是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>