android密度独立

时间:2011-10-17 19:40:14

标签: android

我使用预先设定的(480x800)密度创建了一个布局。我一直在使用这个,因为我开始学习android(9个月),现在是时候在其他手机上测试我的应用了。我在三台分辨率为480x800的手机上测试过它很好,直到我用320x480和240x320测试它。我到处都使用px-s作为宽度和高度,paddingTop等。 我在模拟器中检查了应用程序(为不同的分辨率创建了不同的avd-s),我看不到整个布局,因为它比屏幕大(仅在eclipse中测试)。它有4个带有“wrap_content”宽度和高度设置的图像。 所以我检查了android文档。我没有创建其他布局或其他任何东西,但用dp-s替换了px-s。这是相同的。 我创建了较小的按钮(见下文),分辨率为190x60px,并将它们放入ldpi文件夹中,但没有大的进展。也许是因为文本视图的文本化是相同的,并且在240x320分辨率的情况下,2个文本视图占据显示位置的1/3(而在480x800的情况下仅为1/6)。 (因此,与大分辨率相比,小分辨率的文本看起来很大) 请告诉我怎么做才能使布局看起来像这样的320x480分辨率,如480x800。

gradientbg的大小:这是形状的.xml文件,因此没有物理大小。 按钮(图像)的大小:380x150px hdpi(或ldpi文件夹中的190x60px)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/gradientbg"
    >
    <TextView 
        android:id="@+id/TextView00"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#E30000"
        android:textColor="#FFFFFF"
        android:gravity="center_horizontal|center_vertical"
        android:textSize="26dp"
        android:height="40dp"
        android:textStyle="bold"
        android:text="Main menu"
    />
    <TextView  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="App"
        android:textSize="30dp"
        android:textStyle="bold"
        android:paddingTop="20dp"
        android:layout_gravity="center_horizontal"
        android:textColor="#FFB300"
    />
    <Button android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
            android:background="@drawable/mainbutton_1"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dip"
    />
    <Button android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/mainbutton_2"
        android:layout_gravity="center_horizontal"
        android:paddingTop="5dp"
    />
    <Button android:id="@+id/btn3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
                android:background="@drawable/mainbutton_3"
        android:layout_gravity="center_horizontal"
        android:paddingTop="5dp"
    />
    <Button android:id="@+id/btn4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
                android:background="@drawable/mainbutton_4"
        android:layout_gravity="center_horizontal"
        android:paddingTop="5dp"
    />

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

通常以dp为单位定义布局时,可确保布局在相同密度存储桶中的设备上保持不变。但是当你在平板电脑(xlarge)或小屏幕上试用它时,它将无法正确扩展。此工具可让您的应用程序使用所有设备(小/普通/大/ xlarge)。它会根据您最初设计的基线密度来缩放布局xml文件。

http://onemanmobile.blogspot.com/2012/04/how-to-scale-your-android-layouts-to.html