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”)。

如果您有两个以英寸为单位大小完全相同的真实设备,但一个是 mdpi,另一个是 hdpi,则像素数会增加,但由于自动缩放,按钮的大小会完全相同。如果您在“px”中指定尺寸,则不会发生这种缩放,并且较高密度的屏幕将显示较小的按钮,正如您在上面推断的那样。

于 2013-05-28T01:39:39.313 回答