HTC Desire和HTC Sensation的多个屏幕

时间:2011-09-06 07:10:52

标签: android layout screen htc-android

我想要做的是为Sensation和Desire模型设置不同的布局。

我阅读了有关多屏幕编程的内容,并提供了不同屏幕尺寸和密度的资源,但这种感觉分辨率让我发疯。我的布局在HTC Desire上完美运行;它们被放置在布局中,图纸被放置在hdpi中。一切都很完美。当我尝试在Sensation上运行应用程序时,问题出现了,一切都放错了地方,看起来非常难看。

我的问题是在哪里放置Sensation布局? 我应该为Sensation使用什么限定符名称?

1 个答案:

答案 0 :(得分:1)

尝试使用以下代码查找设备的分辨率和密度(Sensation)。

    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics dm = new DisplayMetrics();
    display.getMetrics(dm);

    int width = display.getWidth();
    int height = display.getHeight();
    int density = dm.densityDpi;
    String densityString = null;

    if(density == DisplayMetrics.DENSITY_HIGH) {
        densityString = "HDPI";
    } else if(density == DisplayMetrics.DENSITY_MEDIUM) {
        densityString = "MDPI";
    } else if(density == DisplayMetrics.DENSITY_LOW) {
        densityString = "LDPI";
    }

然后使用适当的资源名称限定符作为Multiple Screen Support中的drawable和layout文件夹。 (例如) drawable-large-hdpi layout-large-hdpi

这一直不可行,因为您无法访问所有设备。因此,最好根据上面给出的链接中如何在多个屏幕上测试您的应用程序中描述的表格创建具有不同显示配置的AVD。