我无法获得已缩小到我的应用程序中心的ImageView。我尝试了不同的scaleTypes(fitCenter,centerInside都给出了正确的尺寸,但都没有居中),我尝试使用RelativeLayout而不是LinearLayout,我尝试添加权重为0.25的空视图,我已经尝试将layout_width设置为特定的宽度,而不是使用layout_weight ...没有任何东西可以解决问题,图像只是左对齐。想法?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:weightSum="1">
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:layout_gravity="center"
android:src="@drawable/logo"
android:adjustViewBounds="true"
android:scaleType="centerInside" />
</LinearLayout>
答案 0 :(得分:2)
加权导致你的问题。您在 weightSum="1"
上指定了LinearLayout
,然后在layout_weight="0.5"
上指定了ImageView
。这意味着图像只会占用一半可用空间 - 前半部分,用于您在这里的布局。如果您将weightSum="2"
和您的图片设置为layout_weight="0.5"
,则您的图片只会占用空间的四分之一(因为指定的重量是总数的1/4)。
您可以通过删除weightSum
和layout_weight
属性或完全删除LinearLayout
来解决此问题。我建议删除LinearLayout
,因为没有其他孩子而且没有必要;
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/logo"
android:scaleType="centerInside" />
我误解了。这对我有用:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:weightSum="1">
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0.25" />
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/logo" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0.25" />
</LinearLayout>