0

エミュレーターを使用して Android アプリを表示し、密度 = mdpi を設定します。密度をmdpiからhdpiに変更した後、ボタンが小さく見えると思いますが、実際には密度= hdpiに設定するとボタンが大きくなります。なぜですか? ありがとう!

密度=mdpi: https://dl.dropboxusercontent.com/u/209352/low.PNG
密度=hdpi: https://dl.dropboxusercontent.com/u/209352/High.PNG
設定: https://dl. dropboxusercontent.com/u/209352/set.PNG

<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="fill_parent"
        android:layout_height="wrap_content" >        

        <Spinner
            android:id="@+id/spinnerMsgFolder"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"   
            android:layout_alignParentLeft="true"   
            android:layout_alignParentTop="true"   
            android:paddingLeft="8dip"  
        />

        <TextView
            android:id="@+id/textTotalTitle"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/spinnerMsgFolder"
            android:layout_toRightOf="@id/spinnerMsgFolder"
            android:gravity="right"
            android:paddingBottom="8dip"
            android:text="@string/totalAndSelectedTitle" >
        </TextView>

        <TextView
            android:id="@+id/textTotalValue"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/spinnerMsgFolder"
            android:layout_toRightOf="@id/textTotalTitle"
            android:gravity="left"
            android:paddingLeft="6dip"
            android:paddingBottom="8dip"
            android:text="0/1" >
        </TextView>

        <CheckBox
            android:id="@+id/chAll"
            android:layout_width="40dip"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/spinnerMsgFolder"
            android:layout_alignParentRight="true"           
             />

    </RelativeLayout> 



    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:background="#DDDDDD"
        android:layout_weight="1" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/btnToEmail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="To Email" />

        <TextView
            android:id="@+id/edit"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/btnToEmail"
            android:gravity="center_horizontal"
            android:text="Test" >
        </TextView>


        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:text="Exit" />
    </RelativeLayout>

</LinearLayout>
4

1 に答える 1

0

私の推測では、密度を変更してもピクセル数は増えません。リソース システムは、「dip」または「dp」で指定されたすべての次元を拡大します。(ちなみに、「dip」は非推奨です。代わりに「dp」を使用してください)。

インチ単位でまったく同じサイズの 2 つの実際のデバイスがあり、一方が mdpi で、もう一方が hdpi の場合、ピクセル数は増えますが、自動スケーリングによりボタンはまったく同じサイズになります。「px」で寸法を指定すると、このスケーリングは行われず、上で推測したように、密度の高い画面ではボタンが小さく表示されます。

于 2013-05-28T01:39:39.313 に答える