1

Android の属性の背景に問題があります。mdpi と hdpi の画面密度で find を実行するレイアウトを設計したいと考えています。以下のように2つの背景画像があります。

  • 解像度 800x480 の mdpi の背景: ここに画像の説明を入力
  • 解像度 800x480 の hdpi の背景: ここに画像の説明を入力

draw9patch を使用して、コンテンツのパディングを次のように定義します。

 ![enter image description here][3]

これらの画像をレイアウトの背景に設定すると、mdpi 画面では検索できましたが、hdpi では検索できませんでした。設計されたものよりも長い hdpi の背景。スクリーンショットは次のとおりです。

  • mdpi画面では問題ありません:

    ここに画像の説明を入力

  • hdpi画面では長くなります(ストレッチ):

    ここに画像の説明を入力

ここに私のコードがあります:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ui_win_background"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/activity_win_textview_congratulationText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="@dimen/activity_horizontal_marginXExtraWide"
            android:gravity="center"
            android:text="CONGRATULATION!\nYOU WON!!!"
            android:textColor="#FFF"
            android:textSize="@dimen/textSize_XLarge" />

        <TextView
            android:id="@+id/activity_win_textview_percent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="@dimen/activity_horizontal_marginExtraWide"
            android:gravity="center"
            android:text="50%"
            android:textColor="#BD1142"
            android:textSize="72sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/activity_win_textview_prizeName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center"
            android:text="Combo Starbucks"
            android:textColor="@color/black"
            android:textSize="@dimen/textSize_XLarge"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/activity_win_textview_prizeCode"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:layout_margin="@dimen/activity_vertical_margin"
            android:background="@drawable/statelist_textview_white_roundborder"
            android:gravity="center"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:scrollHorizontally="true"
            android:singleLine="true"
            android:text="#fsdjflsejp34230sfmwr3"
            android:textSize="@dimen/textSize_large"
            android:textStyle="italic" />

        <TextView
            android:id="@+id/activity_win_textview_prizeName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="@dimen/activity_vertical_marginWide"
            android:gravity="center"
            android:text="This screen closes in"
            android:textColor="@color/black"
            android:textSize="@dimen/textSize_large" />

        <TextView
            android:id="@+id/activity_win_textview_countDown"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="@dimen/activity_horizontal_margin"
            android:gravity="center"
            android:text="00:20:40"
            android:textColor="#BD1142"
            android:textSize="@dimen/textSize_large"
            android:textStyle="bold" />
    </LinearLayout>

</LinearLayout>

ご覧になり、この問題の解決にご協力ください。

ありがとう。

4

1 に答える 1

1

背景を使用しないでください。ImageView (RelativeLayout を使用) を使用し、イメージ ビューの ScaleType プロパティを任意に設定します。画像の縦横比を維持するスケール タイプを設定できます。また、画像を拡大縮小したくない場合は、9patch は役に立たないことに注意してください。9patch のすべての目的は、システムが画像をどのようにスケーリングするかを制御できるようにすることです (ほとんどの場合、UI コントロールのボタンと背景に使用されます)。

あなたのレイアウト(いくつかの要素を削除しました):

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <RelativeLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content">
       <ImageView
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:scale_type="centerInside" //Do whatever scale type you like
          android:src="background image goes here"
          />
       <LinearLayout
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"               
           android:orientation="vertical" >

           <TextView
               android:id="@+id/activity_win_textview_congratulationText"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_gravity="center_horizontal"
               android:layout_marginTop="@dimen/activity_horizontal_marginXExtraWide"
               android:gravity="center"
               android:text="CONGRATULATION!\nYOU WON!!!"
               android:textColor="#FFF"
               android:textSize="@dimen/textSize_XLarge" />

       </LinearLayout>
     </RelativeLayout>
</LinearLayout>
于 2013-10-21T04:54:04.923 に答える