ImageView
が画面の下部に固定されているレイアウトを実装する必要があります。その上にTextViewを配置し、残りの垂直スペースにテキストを中央に配置しますその範囲内で今度は画像が元のサイズのビットを超えてスケールアップされるべきではなく、TextView
が常に完全に見えるようにする必要がある場合には縮小する必要があります。画像は、特にランドスケープのデバイスのビューポートよりも大きくなることがあります。それは難しい部分です。ImageViewを表示した後に余分なスペースを埋めるためにTextViewを表示する
LinearLayout
とlayout_weight
を適用してこのレイアウトに近づいていますが、これは画像のサイズを使用してサイズ変更されていないため、画像は重量と画面サイズに基づいて不適切に調整されます。もう少し考えれば、画像を下に固定でき、拡大はしませんが、テキストが完全に見えるようにしながら縮小しますが、テキストは垂直方向に伸びず、利用可能なスペースを埋めることができましたしたがって、テキストの内容に基づいて常に上部に固定されます。
このレイアウトはどのように達成できますか?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text_1"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:id="@+id/textview_1" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/my_tall_image_1"
android:scaleType="centerInside"
android:layout_alignParentBottom="true"
android:id="@+id/imageview_1" />
</RelativeLayout>
</LinearLayout>
を試してみてくださいネオが、これは肖像画で正常に機能しますが、風景の中に画像がゆえ、縮小されていないおかげで画像の高さが 'wrap_content'に設定されているため、テキストは表示されません。 – Joey
これには、あなたの要件(100dpまたは150dpと言う)に従って、imageViewのmaxHeightを修正するオプションが1つしかありません。 – Neo
ImageViewの高さは画像の高さまで動的である必要がありますが、使用可能な高さがTextViewとフルハイトに収まるだけの高さでない場合は自動縮小されます画像。 – Joey