所有不同的Android产品分辨率让我感到很头疼。
我编写的第一个Android应用程序支持三种常用分辨率:240x320(LDPI)、320x480(MDPI)和480x800(HDPI)。480x854在布局上没有什么影响,因为它与480x800具有相同的宽度。
我还购买了以下设备来测试我的Android应用程序: 三星Galaxy Europe(LDPI) HTC Desire Z(HDPI)
幸运的是,我的女友有一部HTC Wildfire S(MDPI),所以我覆盖了大多数分辨率。
但是今天,我兄弟在他的新HTC Sensation上下载了我的应用程序,该手机有另一种分辨率540x960(HDPI?)。这导致我的应用程序不能正常显示,可能大多数平板电脑也无法正确显示。
我在我的第一个应用程序中做的是读取密度,然后设置参数。
除了参数外,我还为LDPI、MDPI和HDPI创建了可绘制对象。这对于上述分辨率来说效果很好,但这取决于屏幕分辨率i.c.w.屏幕尺寸,并且在例如具有540x960的HTC感觉器中失败。
我编写的第一个Android应用程序支持三种常用分辨率:240x320(LDPI)、320x480(MDPI)和480x800(HDPI)。480x854在布局上没有什么影响,因为它与480x800具有相同的宽度。
我还购买了以下设备来测试我的Android应用程序: 三星Galaxy Europe(LDPI) HTC Desire Z(HDPI)
幸运的是,我的女友有一部HTC Wildfire S(MDPI),所以我覆盖了大多数分辨率。
但是今天,我兄弟在他的新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.屏幕尺寸,并且在例如具有540x960的HTC感觉器中失败。
我知道并非所有分辨率都经常使用,但我希望尽可能支持更多分辨率。 屏幕尺寸和密度统计数据
我已经多次阅读支持多个屏幕,但没有找到清晰的答案来解决这个“问题”。
那么,我应该读出分辨率并根据分辨率设置参数,而不是密度吗?这样做是否明智,或者您如何处理此问题?
非常感谢您的信息!