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>

ただし、画像は常に字幕テキストを画面の外に押し出します。また、中央に画像を、layout_aboveとlayout_belowのテキストを使用してRelativLayoutを試しましたが、どちらも機能しません。このレイアウトをフラグメントで使用しますが、それは問題ではありません。

4

2 に答える 2

2

あなたが示した「レイアウト」から離れて、これはで行うことができます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>

これは、を使用して行うこともできます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

おそらく、両方のTextView幅に設定してみてくださいandroid:layout_width="fill_parent"

于 2013-02-21T22:24:13.887 に答える