2013-04-17 5 views
5

私はRelativeLayoutのスクリーンの外にある問題のボタンショーに直面しています。 ImageViewボタンを表示するための拡大縮小画像は表示されません。私が持っているものRelativeLayoutを画面に合わせるにはどうすればいいですか?

:私が欲しいもの

enter image description here

enter image description here

はコード:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical" > 

<TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/str" 
     android:textAppearance="@android:style/TextAppearance.Small" 
     android:textColor="?android:attr/textColorTertiary" 
     android:layout_centerHorizontal="true" 
     /> 

<ru.mw.widget.DrawableImageView 
     android:id="@+id/imageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView" 
     android:adjustViewBounds="true" 
     android:layout_centerHorizontal="true" 
     android:scaleType="centerCrop" 
     /> 

<Button 
     android:id="@+id/processButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/str" 
     android:layout_below="@+id/imageView" 
     android:layout_centerHorizontal="true" 
     /> 

問題私は画面の向きを変更する場合:私は風景モードのすべてでArun C Thomas's methodを使用 場合はOKですが、ポートレートモードでは、私はこの(左/右エッジでトリミングされた画像)を持っている:

期待されている何

enter image description here

enter image description here

+0

アンドロイド追加ButtonImageView:あなたのボタンにalignParentBottomを、そしてアンドロイド:alignParentTop(両方=真)あなたのTextViewに。あなたはImageViewのために今のところ境界線を設定していません。 –

答えて

2
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical" > 

<TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/str" 
     android:textColor="?android:attr/textColorTertiary" 
     android:textAppearance="@android:style/TextAppearance.Small" 

     android:layout_centerHorizontal="true" 
     /> 

<ru.mw.widget.DrawableImageView 
    android:id="@+id/imageView" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_below="@+id/textView" 
    android:layout_centerHorizontal="true" 
    android:adjustViewBounds="true" 
    android:scaleType="centerCrop" 
    android:layout_above="@+id/processButton" 
    /> 

<Button 
     android:id="@+id/processButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/str" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     /> 
</RelativeLayout> 

これは、(あなたは1がreslayout-landという名前のフォルダを作成していない場合)更新要件がデフォルトlayoutフォルダの追加になりましたreslayout-landフォルダに上記のレイアウトを追加達成するためのソリューション今

ですこのxml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center" > 
<ru.mw.widget.DrawableImageView 
    android:id="@+id/imageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:adjustViewBounds="true" 
    /> 

<Button 
    android:id="@+id/processButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/imageView" 
    android:layout_centerHorizontal="true" 
    android:text="@string/str" /> 

<TextView 
    android:id="@+id/textView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/imageView" 
    android:layout_centerHorizontal="true" 
    android:text="@string/str" 
    android:textColor="?android:attr/textColorTertiary" /> 

</RelativeLayout> 

それはそれです。

+0

いい例、+1ですが、少し質問を編集します... – ADK

+0

回答を編集してください –

+0

これは1つのレイアウトで実現できると思っていましたが、ありがとうございます! – ADK

1

ボタンにandroid:layout_alignParentBottom="true"を追加しよう:

<Button 
    android:id="@+id/processButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/str" 
    android:layout_below="@+id/imageView" 
    android:layout_centerHorizontal="true" 
    android:layout_alignParentBottom="true" 
    /> 
1
  1. layout_alignParentBottom="true"を使用して親の下にあるボタンの位置を合わせます。
  2. ラップTextView

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical" > 

<TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/str" 
     android:textAppearance="@android:style/TextAppearance.Small" 
     android:textColor="?android:attr/textColorTertiary" 
     android:layout_centerHorizontal="true" 
     /> 

<Button 
     android:id="@+id/processButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/str" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     /> 

<ru.mw.widget.DrawableImageView 
     android:id="@+id/imageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView" 
     android:layout_above="@+id/processButton" 
     android:adjustViewBounds="true" 
     android:layout_centerHorizontal="true" 
     android:scaleType="centerCrop" 
     /> 

</RelativeLayout> 
関連する問題