0

我正在开发一个安卓应用程序。我使用了不同的布局文件夹。像布局,layout-large,layout-xlarge。这样它就可以针对所有分辨率进行调整。但我在活动中动态设置图像。如何根据屏幕分辨率更改它们?如果我们改变分辨率,太大的图像将如何替换更小的图像?

4

1 回答 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 回答