2013-03-12 37 views
0

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

回答

1

Android可以使用密度桶,从l(低)dpi到xx(额外的额外)h(高)dpi。

您想创建不同的版本在文件夹中的图片作为

  • 绘制,LDPI
  • 绘制,MDPI
  • 绘制,华电国际
  • 绘制-xhdpi
  • 和绘制,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; 
} 
+0

我在问,如何根据屏幕分辨率动态地替换图像。如果我使用屏幕尺寸480 * 800。那么图像应该被biger取代。 – user2147892 2013-03-12 09:13:05