-1

320*480サイズの相対レイアウトを使用してレイアウトを定義しています。要素の長さと幅を定義するときに「dp」を使用しています。ただし、別のサイズで確認しようとすると、1024*600または480*800と言います。奇妙な出力が得られます。

サイズ320*480と同じ出力を、すべてのサイズで取得する必要があります。

以下は私が従うレイアウトです。親切に私を助けてください。

前もって感謝します。

ここに画像の説明を入力してください

レイアウト

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/background"
android:gravity="top" >

<RelativeLayout
    android:id="@+id/rl1"
    android:layout_alignParentLeft="true"
    android:layout_width="120dp"
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <RelativeLayout
        android:id="@+id/rl1A"
        android:layout_alignParentLeft="true"
        android:layout_width="120dp"
        android:layout_height="93dp"
        android:orientation="vertical" >

    <ImageButton
        android:id="@+id/imOption1" 
        android:layout_centerHorizontal="true" 
        android:layout_centerVertical="true"
        android:layout_width="80dp"
        android:layout_height="80dp" 
        android:background="@drawable/kite"/> 

     </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl1B"
        android:layout_alignParentLeft="true" 
        android:layout_below="@+id/rl1A"
        android:layout_width="120dp"
        android:layout_height="93dp"
        android:orientation="vertical" >
    <ImageButton
        android:id="@+id/imOption2"
        android:layout_centerHorizontal="true"
        android:layout_width="80dp"
        android:layout_height="80dp" 
        android:background="@drawable/kite"/>
    </RelativeLayout>


    <RelativeLayout
        android:id="@+id/rl1C"
        android:layout_alignParentLeft="true" 
        android:layout_below="@+id/rl1B"
        android:layout_width="120dp"
        android:layout_height="93dp"
        android:orientation="vertical" >
    <ImageButton
        android:id="@+id/imOption3" 
        android:layout_centerHorizontal="true"
        android:layout_width="80dp"
        android:layout_height="80dp"  
        android:background="@drawable/kite" />
    </RelativeLayout>

</RelativeLayout> 

<RelativeLayout
    android:id="@+id/rl2"
    android:layout_toRightOf="@+id/rl1"
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" >     


    <RelativeLayout
        android:id="@+id/rl2A"
        android:layout_alignParentLeft="true"
        android:layout_width="120dp"
        android:layout_height="93dp"
        android:orientation="vertical" >

    <ImageButton
        android:id="@+id/imOption4" 
        android:layout_centerHorizontal="true"
        android:layout_width="80dp"
        android:layout_height="80dp" 
        android:background="@drawable/kite"/> 
     </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl2B"
        android:layout_alignParentLeft="true" 
        android:layout_below="@+id/rl2A"
        android:layout_width="120dp"
        android:layout_height="93dp"
        android:orientation="vertical" >
    <ImageButton
        android:id="@+id/imOption5"
        android:layout_below="@+id/imOption4"
        android:layout_centerHorizontal="true"
        android:layout_width="80dp"
        android:layout_height="80dp" 
        android:background="@drawable/kite"/>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl2C"
        android:layout_alignParentLeft="true" 
        android:layout_below="@+id/rl2B"
        android:layout_width="120dp"
        android:layout_height="93dp"
        android:orientation="vertical" >
    <ImageButton
        android:id="@+id/imOption6"
        android:layout_below="@+id/imOption5"
        android:layout_centerHorizontal="true"
        android:layout_width="80dp"
        android:layout_height="80dp"  
        android:background="@drawable/kite" />
    </RelativeLayout>
</RelativeLayout>

<RelativeLayout
    android:id="@+id/rl3"
    android:layout_toRightOf="@+id/rl2"
    android:layout_width="120dp"
    android:layout_height="wrap_content" 
    android:orientation="vertical" >    

    <RelativeLayout
        android:id="@+id/rl3A"
        android:layout_alignParentLeft="true"
        android:layout_width="120dp"
        android:layout_height="93dp"
        android:orientation="vertical" >
    <ImageButton
        android:id="@+id/imOption7" 
        android:layout_centerHorizontal="true"
        android:layout_width="80dp"
        android:layout_height="80dp" 
        android:background="@drawable/kite"/> 
    </RelativeLayout>


    <RelativeLayout
        android:id="@+id/rl3B"
        android:layout_alignParentLeft="true" 
        android:layout_below="@+id/rl3A"
        android:layout_width="120dp"
        android:layout_height="93dp"
        android:orientation="vertical" >
    <ImageButton
        android:id="@+id/imOption8"
        android:layout_below="@+id/imOption7"
        android:layout_centerHorizontal="true"
        android:layout_width="80dp"
        android:layout_height="80dp" 
        android:background="@drawable/kite"/>
    </RelativeLayout>



    <RelativeLayout
        android:id="@+id/rl3C"
        android:layout_alignParentLeft="true" 
        android:layout_below="@+id/rl3B"
        android:layout_width="120dp"
        android:layout_height="93dp"
        android:orientation="vertical" >
    <ImageButton
        android:id="@+id/imOption9"
        android:layout_below="@+id/imOption8"
        android:layout_centerHorizontal="true"
        android:layout_width="80dp"
        android:layout_height="80dp"  
        android:background="@drawable/kite" />
    </RelativeLayout>
</RelativeLayout> 

<RelativeLayout
    android:id="@+id/rl4"
    android:layout_toRightOf="@+id/rl3"
    android:layout_width="1dp"
    android:layout_height="fill_parent"
    android:background="#000000"   >     
</RelativeLayout>  

<RelativeLayout
    android:id="@+id/rl5"
    android:layout_width="240dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/rl4" >

    <ImageView
        android:id="@+id/ivDisplayArea"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:background="@drawable/kite"/>  

    <ImageButton
        android:id="@+id/bQuestion" 
        android:layout_marginTop="15dp"
        android:layout_marginLeft="10dp"
        android:layout_below="@+id/ivDisplayArea" 
        android:layout_alignParentLeft="true"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:background="@drawable/question"  />

    <ImageButton
        android:id="@+id/bNext" 
        android:layout_marginTop="15dp"
        android:layout_marginLeft="30dp"
        android:layout_below="@+id/ivDisplayArea"
        android:layout_toRightOf="@+id/bQuestion"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:background="@drawable/next"/>

</RelativeLayout>


<RelativeLayout
    android:id="@+id/rl6"
    android:layout_width="360dp"
    android:layout_height="1dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/rl1"  
    android:background="#000000">
</RelativeLayout>

<RelativeLayout
    android:id="@+id/rl7"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/rl6"
    android:layout_toLeftOf="@+id/rl4" >

     <TextView
         android:id="@+id/tvRewardAccount"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:gravity="center"
         android:text="Reward Account"
         android:textColor="#000000"
         android:textStyle="bold" />

             <ImageButton
                 android:id="@+id/bReward1"
                 android:layout_marginLeft="16dp"
                 android:layout_width="28dp"
                 android:layout_height="28dp"
                 android:layout_below="@+id/tvRewardAccount"
                 android:background="@drawable/lollipop" /> 

             <ImageButton
                 android:id="@+id/bReward2"
                 android:layout_width="28dp"
                 android:layout_height="28dp"
                 android:layout_marginLeft="4dp"
                 android:layout_alignTop="@+id/bReward1"
                 android:layout_toRightOf="@+id/bReward1"
                 android:background="@drawable/lollipop" />

             <ImageButton
                 android:id="@+id/bReward3"
                 android:layout_marginLeft="4dp"
                 android:layout_width="28dp"
                 android:layout_height="28dp" 
                 android:layout_alignTop="@+id/bReward1"
                 android:layout_toRightOf="@+id/bReward2"
                 android:background="@drawable/lollipop" />

             <ImageButton
                 android:id="@+id/bReward4"
                 android:layout_marginLeft="4dp"
                 android:layout_width="28dp"
                 android:layout_height="28dp" 
                 android:layout_alignTop="@+id/bReward1"
                 android:layout_toRightOf="@+id/bReward3"
                 android:background="@drawable/lollipop" />

             <ImageButton
                 android:id="@+id/bReward5"
                 android:layout_marginLeft="4dp"
                 android:layout_width="28dp"
                 android:layout_height="28dp" 
                 android:layout_alignTop="@+id/bReward1"
                 android:layout_toRightOf="@+id/bReward4"
                 android:background="@drawable/lollipop" />

             <ImageButton
                 android:id="@+id/bReward6"
                 android:layout_marginLeft="4dp"
                 android:layout_width="28dp"
                 android:layout_height="28dp" 
                 android:layout_alignTop="@+id/bReward1"
                 android:layout_toRightOf="@+id/bReward5"
                 android:background="@drawable/lollipop" />

             <ImageButton
                 android:id="@+id/bReward7"
                 android:layout_marginLeft="4dp"
                 android:layout_width="28dp"
                 android:layout_height="28dp" 
                 android:layout_alignTop="@+id/bReward1"
                 android:layout_toRightOf="@+id/bReward6"
                 android:background="@drawable/lollipop" />

             <ImageButton
                 android:id="@+id/bReward8"
                 android:layout_marginLeft="4dp"
                 android:layout_width="28dp"
                 android:layout_height="28dp" 
                 android:layout_alignTop="@+id/bReward1"
                 android:layout_toRightOf="@+id/bReward7"
                 android:background="@drawable/lollipop" />

             <ImageButton
                 android:id="@+id/bReward9"
                 android:layout_marginLeft="4dp"
                 android:layout_width="28dp"
                 android:layout_height="28dp" 
                 android:layout_alignTop="@+id/bReward1"
                 android:layout_toRightOf="@+id/bReward8"
                 android:background="@drawable/lollipop" />

             <ImageButton
                 android:id="@+id/bReward10"
                 android:layout_width="28dp"
                 android:layout_height="28dp" 
                 android:layout_marginLeft="4dp"
                 android:layout_alignTop="@+id/bReward1"
                 android:layout_toRightOf="@+id/bReward9"
                 android:background="@drawable/lollipop" />


</RelativeLayout>

</RelativeLayout>
4

3 に答える 3

0

ドローアブルは高解像度に十分な大きさですか?Androidは、デフォルトでは画像をアップスケールしません。

ディスプレイサイズベースのサイズを使用することもできます-Androidリソース管理はそのために最適です。次のページが役立つかもしれません。

http://android-er.blogspot.de/2010/04/how-to-define-dimension-in-android.html http://developer.android.com/guide/practices/screens_support.html

于 2013-03-24T18:58:57.530 に答える
0

レイアウトを静的に設定する必要はありません。コード側でデバイスの画面サイズを取得し、このサイズに従ってレイアウトを設定する必要があります。その場合、複数のxmlレイアウトが必要であり、画面サイズに応じてコードで設定する必要があります。

于 2013-03-24T19:08:59.727 に答える
0

密度に依存しないピクセルでサイズを定義する場合、これは、そのように定義されたオブジェクトを、さまざまな密度の画面でほぼ同じ物理サイズにすることを目的としています。あなたが投稿した画像は、ピクセルサイズが小さい画面のクローズアップであり、ピクセルサイズが大きい画面のより遠いビューであると思われます。両方の画面をテーブルに並べて物理的なデバイスを撮影すると、画像はほぼ同じサイズになると思います。大きな画面には、より多くのピクセルだけでなく、密度に依存しないピクセルも含まれているため、dpで表される特定のサイズの画像は、おそらくほぼ同じ物理サイズになりますが、その画面の占める割合は小さくなります(例: 、 インチで)。

dpユニットを使用して画像を定義すると、画像が物理画面の同じ割合を占めるようになることを期待しているようですが、それはそれらのユニットの目的ではありません。実際、画面が異なればアスペクト比(幅と高さの比率)も異なるため、このような動作はグラフィックの歪みにつながります。

fill_parentを使用して、最も外側のレイアウトを画面のサイズに拡大縮小することを検討してください。その外側のレイアウトを、ディスプレイの左側と右側に水平に構成されたLinearLayoutにすることができます。それぞれの幅は、layout_weightを使用してパーセンテージとして定義されます。次に、この水平方向の最初の要素として垂直方向に構成されたLinearLayoutをネストできます。上部には、左側の3x3画像のGridViewが含まれ、各画像は、アスペクト比を維持するように、含まれる正方形内で拡大縮小されます。すぐ。

于 2013-03-24T19:52:27.613 に答える