android drawable如何自动更改?

时间:2012-01-24 10:00:02

标签: android drawable

我有一个Android应用程序,它使用许多图像。和应用程序将用于不同的分辨率。我只使用一组图像,图像保存在“drawable-mdpi”中。 所以“当我以高分辨率运行时,图像变得模糊”。 因此,解决方法可能是在drawable-hdpi,ldpi等中保存不同分辨率的不同图像。

这样做是否足够,还是我必须通过代码更改图像?或手机自动将完整图像调整为可绘制的内容。

任何人都可以提供一个例子吗?

3 个答案:

答案 0 :(得分:7)

如果您将图片放在ldpi,mdpi,hdpixhdpi文件夹中,Android会根据当前设备dpi选择图片。

如果您只添加mdpi个资源并将其加载到hdpi设备上,那么如果您在1.5设备上打开图片,那么Android会将图片放大ldpi倍他们将缩小0.75因子。 应用缩放使得图像具有(几乎)所有具有任何dpi的显示的物理尺寸。

如果在自动缩放后这些图像模糊(或缩小时松散的细节),则应为每个dpi添加不同的图像。如果你有简单的图像,在缩放后看起来很好,你只需要将一个图像添加到任何dpi文件夹。

编辑: 在Android上,根据屏幕分辨率,没有默认的自动选择图像的方法。正如文档所说:

  

添加对多个屏幕的支持时,应用程序无法直接使用分辨率;应用程序应仅关注屏幕尺寸和密度,如通用尺寸和密度组所指定的那样。

(见Supporting multiple screens)。

答案 1 :(得分:4)

这就够了。这是在drawable目录中有不同文件夹的原因,但请注意,Android 1.5仅支持1个名为drawable的文件夹,没有子目录(但1.5上没有分辨率高于mdpi的手机)

答案 2 :(得分:0)

确保图像始终正确缩放的最佳方法之一是使用9 Patch drawables。 Android会根据屏幕大小自动缩放这些内容。它们最适用于通常会改变尺寸的东西(Buttons,EditTexts,Spinners等),但可以在正确的设置中正确应用。

使用9 Patch图像的一个优点是节省空间;在我们的应用程序中内置三个不同版本的图像可能会在一段时间后变得非常大,但有9个补丁,您只需要一个副本。

有关详细信息,请参见此处:
http://developer.android.com/guide/developing/tools/draw9patch.html