我的ImageView出于一些奇怪的原因总是在我的屏幕左侧显示一张图片,尽管xml代码坚持它在中心。
我在我的应用程序中强制纵向方向,这是我的布局的xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:gravity="center">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/image_view"
android:layout_weight="1.0"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/message"
android:gravity="center_horizontal"
android:padding="10dip"/>
<Button
android:layout_gravity="center_horizontal"
android:layout_width="fill_parent"
android:textStyle="bold" android:id="@+id/action_button" android:selectAllOnFocus="false" android:layout_height="100dip" android:text="Click here to preform actions"/>
</LinearLayout>
因此,页面应显示为中间的图片,扩展屏幕的宽度,下面的文本和下面的按钮。但出于某种原因,图片显示为屏幕中间左侧的一个小盒子缩略图 - 有关解决方法的任何想法吗?
答案 0 :(得分:2)
假设您希望您的图片位于顶部框内,您不希望android:gravity="center"
,您实际上只想在ImageView
上设置android:scaleType
。如果您不想缩放,“center
”是正确的值; centerInside
可能是合适的(在这种情况下,您需要在ImageView
上定义某种维度或权重)。有关scaleType值的更多信息,请参阅the documentation。
您也不希望图像高度设置为fill_parent,或者它会这样做(这意味着它下面没有文本,因为图像填满了整个父LinearLayout
,没有文字空间)。您可能希望将ImageView
的高度设置为wrap_content
或某个固定高度(例如100dip
)。