需要有关ImageView始终显示不正确的帮助

时间:2010-11-21 22:25:58

标签: android xml layout orientation centering

我的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>

因此,页面应显示为中间的图片,扩展屏幕的宽度,下面的文本和下面的按钮。但出于某种原因,图片显示为屏幕中间左侧的一个小盒子缩略图 - 有关解决方法的任何想法吗?

1 个答案:

答案 0 :(得分:2)

假设您希望您的图片位于顶部框内,您不希望android:gravity="center",您实际上只想在ImageView上设置android:scaleType。如果您不想缩放,“center”是正确的值; centerInside可能是合适的(在这种情况下,您需要在ImageView上定义某种维度或权重)。有关scaleType值的更多信息,请参阅the documentation

您也不希望图像高度设置为fill_parent,或者它会这样做(这意味着它下面没有文本,因为图像填满了整个父LinearLayout,没有文字空间)。您可能希望将ImageView的高度设置为wrap_content或某个固定高度(例如100dip)。