应用适合多种屏幕尺寸。但我知道的一个

时间:2012-05-14 21:55:44

标签: android

我将我的应用程序发布到了Play商店。适合SGSII Epic 4.5“,LG Optimus V 3.2”,LG Optimus Black 4.0“,Evo移动3.6”mytouch 4g 3.8“,但它不适合droid bionic 4.3”。有谁知道为什么它不适合屏幕?屏幕尺寸为4.3英寸,但应用程序仅占用4.3英寸屏幕上3.6英寸屏幕的空间。当三星向侧面倾斜时,它会尝试进入横向模式,并且我将它设置为android:screenOrientation清单中的“肖像”

这是我的主要xml

android:layout_width="320dp"

android:layout_height="485dp"

android:orientation="vertical"

android:padding="15dp"

android:background="@drawable/graybkg"



 >

<Button
    android:id="@+id/national"

    android:layout_width="300dp"

    android:layout_height="120dp"

    android:layout_gravity="center"

    android:background="@drawable/custtomnatbut"

     />



<Button
    android:id="@+id/yorgeys"

    android:layout_width="300dp"

    android:layout_height="120dp"

    android:layout_gravity="center"

    android:background="@drawable/custtomyorgeys"

    />

    android:layout_width="300dp"

    android:layout_height="60dp"

    android:layout_gravity="center"

    android:background="@drawable/custtomfoursq"

    />




<LinearLayout 
    android:layout_width="300dp"

    android:layout_height="60dp"

    android:layout_gravity="center"
    >


<Button
    android:id="@+id/facebook"

    android:layout_width="150dp"

    android:layout_height="60dp"

    android:background="@drawable/custtomface"

    />



<Button

    android:id="@+id/website"

    android:layout_width="150dp"

    android:layout_height="60dp"

    android:background="@drawable/custtom_web"

     />
</LinearLayout>

1 个答案:

答案 0 :(得分:7)

您真的不应该将屏幕视为物理屏幕尺寸。布局的重点是屏幕上的dp单位数。

我相信Droid Bionic是以hdpi运行的qHD(960x540)屏幕。就dp单位而言,这是640x360dp。相比之下,典型的HVGA(800x480)hdpi为533x320dp。

您显示的布局似乎是用绝对尺寸插入来写的。如果你正在做这件事,你就注定要失败。你不能写像有一个真正的屏幕尺寸来统治他们所有。您编写布局的原因是描述您的UI,以便平台可以移动其元素以适应屏幕。试图强迫它成为一个固定的定位系统会导致你与系统作斗争,并最终被埋没在试图支持另一个和屏幕尺寸的另一个变化。

考虑到Galaxy Nexus和其他更新的手机出现了1280x800 xhdpi屏幕,这给你的另一个尺寸 - 640x400dp。