ImageView未在LinearLayout中显示

时间:2013-07-25 02:12:42

标签: android android-imageview

我的目标是显示几个按钮,然后显示PNG图像。问题是图像根本不显示。如果我取出所有按钮,则会显示图像。这个xml文件究竟出了什么问题?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:adjustViewBounds="true"
    tools:context=".MainActivity" >



    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/option1"
        android:onClick="sendMessage" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/OR" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/option2"
        android:onClick="sendMessage" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/Pic"
        android:src="@drawable/soup" />

</LinearLayout>

3 个答案:

答案 0 :(得分:2)

LinearLayout将布置每个孩子,直到它用完空间。如果前三个孩子占用的空间至少与屏幕宽度一样多,那么ImageView将不在屏幕上(我说宽度因为LinearLayouts默认是水平的 - 如果你想要它是垂直的,你必须包括{ {1}}属性)。

您需要指定布局权重以为每个chid提供可用空间的特定部分,或者您需要选择更适合您需要的其他布局。

答案 1 :(得分:0)

将“android:orientation”的linearlayout设置为水平或垂直。这可能会解决它。

答案 2 :(得分:0)

没有错。当您对单个视图使用“wrap_content”时,您可能正在跨越布局边界。在这种情况下,您可以设置布局权重以适应所有情况。