将图像保存到单个可绘制文件夹(hdpi,mdpi或默认)的缺点

时间:2013-09-09 06:05:44

标签: android android-screen

我查看了几个问题和答案,但我仍然不知道我在我的应用程序上做了什么会产生什么后果:

我在我的主要活动上设置了背景图片,并添加了这一行以确保图像将显示在整个屏幕上:setScaleType(ScaleType.FIT_XY)(我的图片可以有点拉伸没有任何问题,它不能感谢使用的纹理。

目前我只在xhdpi文件夹中添加了图像,因为这个密度是我打算处理的最高密度。考虑到图像会根据屏幕自动调整大小,在每个密度文件夹中都有特定图像的重点是什么?

每个文件夹中的图像都会使应用程序的大小更大,而且准备工作需要花费更多时间。

不处理从xhdpi到lpdi的所有密度有什么风险?

修改 下面我用作图案的图像示例。仅供参考,我使用此代码来增加模式:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/butterfly" 
    android:tileMode="repeat" />

Example of background pattern

3 个答案:

答案 0 :(得分:2)


您的方法的一个缺点是,有时较大的图标需要比较小的图标更多的细节。通过仅对所有密度使用一个图像,在每种情况下您也将具有相同数量的细节。通常,按比例缩小时,较大且更详细的图标看起来不太好(反之亦然)。

关于这个问题的好文章:http://www.pushing-pixels.org/2011/11/04/about-those-vector-icons.html

答案 1 :(得分:1)

具有ldpi / mdpi的设备本质上是低配置设备,具有严重受限的资源,如内存。如果您为此类设备使用大图像,则可能遇到的问题是:

  • 执行缓慢的应用程序,因为大型图像必须由功能相对较弱的CPU解压缩
  • 由于图像不符合这些设备的堆大小而导致OutOfMemory错误。

修改 这个答案假设OP了解Providing Alternate Bitmaps的原因,并且只想知道不遵循Best Practices的风险。

答案 2 :(得分:0)

从这里开始:http://developer.android.com/training/multiscreen/screendensities.html

由于Android在具有各种屏幕密度的设备中运行,因此您应始终提供针对每个广义密度桶定制的位图资源:低,中,高和超高密度。这将有助于您在所有屏幕密度上实现良好的图形质量和性能。