2016-06-14 6 views
0

ImageViewが画面の下部に固定されているレイアウトを実装する必要があります。その上にTextViewを配置し、残りの垂直スペースにテキストを中央に配置しますその範囲内で今度は画像が元のサイズのビットを超えてスケ​​ールアップされるべきではなく、TextViewが常に完全に見えるようにする必要がある場合には縮小する必要があります。画像は、特にランドスケープのデバイスのビューポートよりも大きくなることがあります。それは難しい部分です。ImageViewを表示した後に余分なスペースを埋めるためにTextViewを表示する

LinearLayoutlayout_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> 

答えて

0

次の更新されたXML

<RelativeLayout 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"> 
     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:src="@drawable/myimage_1" 
      android:scaleType="centerInside" 
      android:layout_alignParentBottom="true" 
      android:id="@+id/imageview_1" /> 

    <TextView 
     android:layout_above="@id/imageview_1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="@string/text_1" 
     android:gravity="center" 
     android:id="@+id/textview_1" /> 


</RelativeLayout> 

それはあなたのために働くことを願っています:)

+0

を試してみてくださいネオが、これは肖像画で正常に機能しますが、風景の中に画像がゆえ、縮小されていないおかげで画像の高さが 'wrap_content'に設定されているため、テキストは表示されません。 – Joey

+0

これには、あなたの要件(100dpまたは150dpと言う)に従って、imageViewのmaxHeightを修正するオプションが1つしかありません。 – Neo

+0

ImageViewの高さは画像の高さまで動的である必要がありますが、使用可能な高さがTextViewとフルハイトに収まるだけの高さでない場合は自動縮小されます画像。 – Joey

関連する問題