0

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

我在我的主要活动上设置了一个背景图像,并添加了这一行以确保图像将显示在整个屏幕上:(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" />

背景图案示例

4

3 回答 3

2


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

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

于 2013-09-09T06:32:39.343 回答
1

带有 ldpi / mdpi 的设备本质上是低配置设备,它们具有严重受限的资源(如内存)。如果您在此类设备上使用大图像,您可能面临的问题是:

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

编辑: 此答案假定 OP 了解提供备用位图的原因,并且只对了解不遵循Best Practices的风险感兴趣。

于 2013-09-09T06:27:22.437 回答
0

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

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

于 2013-09-09T06:43:36.103 回答