0

我想要一个这样的布局

       [text]
___________________
[                 ]
[     image       ]
[                 ]
[_________________]
      [text]

图像对于某些屏幕尺寸来说太大了,所以我希望图像使用仍然适合的最大尺寸。基本上是这样的:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:text="@string/titel" />

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/bigimage" />

    <TextView
        android:id="@+id/subtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:text="@string/subtitle" />
</LinearLayout>

但是图像总是将字幕文本推到屏幕之外。我还尝试了一个 RelativLayout,图像居中,文本带有 layout_above 和 layout_below,但这也不起作用。我在片段中使用此布局,但这无关紧要。

4

2 回答 2

2

离开你展示的“布局”,这可以用 a 来完成LinearLayout,你只需要使用layout_weight.

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:text="@string/titel" />

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@drawable/bigimage" />

    <TextView
        android:id="@+id/subtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:text="@string/subtitle" />
</LinearLayout>

这也可以使用 a 来完成RelativeLayout,但TextViews 需要是锚点,而不是ImageView,这就是图像将您的文本推离屏幕底部的原因。

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:padding="8dp"
        android:text="@string/titel" />

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/subtitle"
        android:layout_below="@+id/title"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@drawable/bigimage" />

    <TextView
        android:id="@+id/subtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:padding="8dp"
        android:text="@string/subtitle" />
</RelativeLayout>
于 2013-02-21T22:53:11.280 回答
0

也许尝试同时设置TextViewwidth android:layout_width="fill_parent"

于 2013-02-21T22:24:13.887 回答