gpt4 book ai didi

android - 如何支持安卓产品的所有不同分辨率

转载 作者:可可西里 更新时间:2023-11-01 18:54:55 30 4
gpt4 key购买 nike

不同 Android 产品的所有不同分辨率让我抓狂。

我编写的第一个 Android 应用程序旨在支持三种常用分辨率:240x320 (LDPI)、320x480 (MDPI) 和 480x800 (HDPI)。 480x854 不会对布局造成任何损害,因为它的宽度与 480x800 相同。

我还购买了以下设备来测试我的 Android 应用程序:三星银河欧洲 (LDPI)HTC 欲望 Z(HDPI)

幸运的是,我的女朋友有一台 HTC Wildfire S (MDPI),所以我可以解决大部分问题。

但是今天,我的兄弟在他的新 HTC Sensation 上下载了我的应用程序,该 HTC Sensation 的分辨率又是 540x960(HDPI?)。它没有按应有的方式显示我的应用程序,而且可能大多数平板电脑也无法正确显示它。

我对我的第一个应用所做的是读取密度然后设置参数:

public void set_ui_parameters() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

if(metrics.densityDpi == DisplayMetrics.DENSITY_HIGH){
textSize = 35;
timeWidth = 80;
dayWidth = 110;
moneyWidth = 50;
} else if(metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM){
textSize = 35;
timeWidth = 53;
dayWidth = 73;
moneyWidth = 33;
} else if(metrics.densityDpi == DisplayMetrics.DENSITY_LOW){
textSize = 28;
timeWidth = 40;
dayWidth = 55;
moneyWidth = 25;
}
}

除了参数之外,我还为 LDPI、MDPI 和 HDPI 创建了可绘制对象。这适用于上述分辨率,但这取决于屏幕分辨率 i.c.w。屏幕尺寸和失败,例如 HTC sensatoin 540x960。

我知道并不是所有的分辨率都被经常使用,但我想尽可能多地支持。 Stats of Screen Sizes and Densities

我读过 Supporting Multiple Screens多次但没有找到这个“问题”的明确答案。

那么我应该读出分辨率并根据分辨率而不是密度设置参数吗?这是明智之举还是您如何应对?

非常感谢您的信息!

最佳答案

您不必为了支持不同的密度而这样做。您所做的是创建不同的资源文件夹:

res/values-ldpi/dimens.xml
res/values-mdpi/dimens.xml
res/values-hdpi/dimens.xml

然后 Android 将决定使用哪个文件。你可以有这样的东西:

<!-- in values-ldpi/dimens.xml -->
<dimen name="textSize">25dip</dimen>

和..

<!-- in values-mdpi/dimens.xml -->
<dimen name="textSize">20dip</dimen>

等而且你不应该关心分辨率......有很多不同的分辨率大小,所以根据它做出决定将是一个 hell 。

此外,如果您使用 dp 而不是像素,您几乎不必为每个密度创建不同的尺寸文件。当然,有时您必须这样做,但这取决于应用程序。

关于android - 如何支持安卓产品的所有不同分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403619/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com