应用程序背景资源路径的最佳方式

时间:2017-04-11 18:31:48

标签: android

我有多个高分辨率背景,需要缩小以适应较低的屏幕,如Stack Overflow中所示,我将它们放在drawable文件夹中。我不知道它是否正确,所以我试着测试。

我有OutOfMemory例外,因此我不得不将它们移到drawable-nodpi,它运行良好,没有任何异常,但我不知道这是否是在Android中使用它的正确方法

对此有何建议?有人说我需要为每个屏幕背景制作,例如xxhdpixhdpi,但我想在最高屏幕上制作背景,并将其缩小更好?

2 个答案:

答案 0 :(得分:1)

  

我把它们放在drawable文件夹中。我不知道它是否正确,所以我试着测试。

如果你在drawable文件夹中放置一个drawable,Android将使用该drawable用于所有屏幕尺寸,缩放drawable以反映设备的密度(例如,xhdpi设备会炸毁图像2x )。

  

我有OutOfMemory例外,因此我不得不将它们移到drawable-nodpi,它运行良好,没有任何异常,但我不知道这是否是在Android中使用它的正确方法

-nodpi文件夹中的Drawables根本不会缩放。如果你想扩展,那不是你想要的。

  

但是我想在最高的屏幕上制作背景,并将其缩小更好?

如果您只在APK中包含最高分辨率的图像,则Android必须在您使用时将整个图像加载到内存中。如果您在100x100屏幕上显示500x500图像,Android将需要将整个500x500图像加载到内存中。

屏幕较小的设备往往内存较少,因此可能导致OutOfMemoryException

从设计角度来看,您也无法控制缩小图像的外观。根据您的使用情况,这可能没问题。

  

对此有任何建议

正确的方法是预先缩放您的drawable并将它们放在适当的drawable文件夹中。 1x资产进入drawable-mdpi,资产缩放到1.5x进入drawable-hdpi等等。然后,Android将仅加载设备屏幕尺寸的正确大小的资产。

答案 1 :(得分:0)

有一点需要注意。 1.你应该尽可能地优化图像,以便在低端设备中    加载图像OutOfMemory错误不存在。 2.根据您的应用程序设备获取高分辨率的图像    支持将该映像放在xxhdpi或xxxhdpi资源文件夹中。 3.Android自动缩小,保持图像的宽高比    加载时。

相关问题