我正在开发一个安卓应用程序。我使用了不同的布局文件夹。像布局,layout-large,layout-xlarge。这样它就可以针对所有分辨率进行调整。但我在活动中动态设置图像。如何根据屏幕分辨率更改它们?如果我们改变分辨率,太大的图像将如何替换更小的图像?
问问题
596 次
1 回答
1
Android 使用密度桶,从 l(low)dpi 到 xx(extra extra)h(high)dpi。
您想在文件夹中创建不同版本的图像
- 可绘制的 ldpi
- 可绘制的 mdpi
- 可绘制的 hdpi
- 可绘制的 xhdpi
- 和 drawable-xxhdpi 如果你想支持 Nexus 10。
这与 layout-large 文件夹有点松散,它使您能够为不同的大小定义不同的布局。
2 完全不同的东西,您可以在 Android 的屏幕实践中了解更多信息 。
======= 编辑;似乎这不完全是问题。
如果您以“正确的方式”进行操作,Android 系统将为您选择正确的图像,即使是动态添加它们(您仍然可以从 java 代码中调用 R.drawable.my_image)。
如果由于某种原因你必须选择,你可以简单地用类似的东西检查电流密度(有点过时);
public String getDensity() {
String density;
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
// will either be DENSITY_LOW (120) , DENSITY_MEDIUM (160) or
// DENSITY_HIGH (240)
switch (dm.densityDpi) {
case 120:
density = "ldpi";
break;
case 160:
density = "mdpi";
break;
case 240:
density = "hdpi";
break;
// use hdpi as default, because flurry shows this will be suited for
// most of our users.
default:
density = "hdpi";
break;
}
return density;
}
于 2013-03-12T09:07:50.660 回答