我有一个包含文本图像的图库,以及一个包含图像中每个文本位置的数据库。
位置以像素表示,这就是问题:
如何确保信息适用于每个屏幕分辨率?
图像是300x400 ..
注意:数据库已在像素中包含这些值。我无法更改它们。
答案 0 :(得分:3)
不要以像素为单位指定位置,而是使用dp http://developer.android.com/guide/topics/resources/more-resources.html#Dimension
阅读本文以了解如何支持多个屏幕: http://developer.android.com/guide/practices/screens_support.html
答案 1 :(得分:1)
如果您无法更改为dp值,则可以使用以下方法检查DisplayMetrics:
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
使用metrics.densityDpi
可获得当前的密度。
然后为每个密度实现一个switch语句,为所有px值添加一个缩放因子,类似于:
switch (density) {
case 120:
scaleFactor = 0.75;
break;
case 160:
scaleFactor = 1;
break;
case 240:
scaleFactor = 1.5;
break;
case 320:
scaleFactor = 2;
break;
default:
break;
}
答案 2 :(得分:0)
我更喜欢你遵循hdpi,ldpi和mdpi的标准尺寸。它们是480x800,320x480和240x400,并将它们放在各自的文件夹中。您当前的分辨率将使图像拉伸以适应设备。为所有具有相同名称的图像命名。 Android将负责其余部分。 :)