如何根据分辨率更改图像?

时间:2013-03-12 09:04:21

标签: android layout screen

我正在开发一个Android应用程序。我使用了不同的布局文件夹。像布局,布局大,布局-xlarge。这样它就可以适应所有分辨率。但我正在动态设置图像。如何根据屏幕分辨率更改它们?如果我们改变分辨率,那么太大的图像会取代较小的图像?

1 个答案:

答案 0 :(得分:1)

Android适用于密度桶,从l(低)dpi到xx(额外额外)h(高)dpi。

您希望在文件夹中创建不同版本的图片

  • 抽拉-LDPI
  • 抽拉-MDPI
  • 抽拉-HDPI
  • drawable-xhdpi
  • 和drawable-xxhdpi如果你想支持Nexus 10.

布局大文件夹有点松散,可以为不同大小定义不同的布局。

2个完全不同的东西,你可以阅读更多关于 screen practices in 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;
}