当我设置density = hdpi时,为什么按钮看起来更大?

时间:2013-05-28 01:19:04

标签: android

我使用模拟器显示Android应用程序并设置density = mdpi。将密度从mdpi更改为hdpi后,我认为按钮看起来像小尺寸,但实际上当我设置density = 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>

1 个答案:

答案 0 :(得分:0)

我的猜测是,当您更改密度时,不会增加像素数。资源系统将扩展使用“dip”或“dp”指定的所有维度。 (顺便说一句,“dip”已弃用 - 您应该使用“dp”代替。)

如果您有两个真实设备,其大小完全相同(英寸),但其中一个是mdpi,另一个是hdpi,则像素数会增加,但由于自动缩放,按钮的大小将完全相同。如果您在“px”中指定尺寸,则不会发生此缩放,并且较高密度的屏幕将显示较小的按钮,如上所述。