Android 应用程序背景资源路径的最佳方式
我有多个高分辨率背景,需要缩小以适应较低的屏幕,正如Stack Overflow中建议的那样,我已经将它们放在Android 应用程序背景资源路径的最佳方式,android,Android,我有多个高分辨率背景,需要缩小以适应较低的屏幕,正如Stack Overflow中建议的那样,我已经将它们放在可绘制的文件夹中。我不知道它是否正确,所以我试着测试 我有OutOfMemory异常,因此我不得不将它们移动到drawable nodpi,它运行良好,没有任何异常,但我不知道这是否是在Android中使用它的正确方法 有什么建议吗?有人说我需要为每个屏幕制作背景,比如xxhdpi,xhdpi,但我想在最高的屏幕上制作背景,并将其缩小得更好 我已经把它们放在可绘图的文件夹里了。我不知道它
可绘制的
文件夹中。我不知道它是否正确,所以我试着测试
我有OutOfMemory
异常,因此我不得不将它们移动到drawable nodpi
,它运行良好,没有任何异常,但我不知道这是否是在Android中使用它的正确方法
有什么建议吗?有人说我需要为每个屏幕制作背景,比如xxhdpi
,xhdpi
,但我想在最高的屏幕上制作背景,并将其缩小得更好
我已经把它们放在可绘图的文件夹里了。我不知道它是否正确,所以我试着测试
如果您在drawable
文件夹中放置一个可绘制的,Android将对所有屏幕大小使用该可绘制的,缩放可绘制的以反映设备的密度(例如xhdpi
设备将放大图像2倍)
我有OutOfMemory
异常,因此我不得不将它们移动到drawable nodpi
,它运行良好,没有任何异常,但我不知道这是否是在Android中使用它的正确方法
-nodpi
文件夹中的绘图将完全不缩放。如果你想要缩放,那不是你想要的
但我想在最高的屏幕上制作一个背景,并将其缩小得更好
如果在APK中只包含最高分辨率的图像,那么Android必须在使用时将整个图像加载到内存中。如果在100x100屏幕上显示500x500图像,Android需要将整个500x500图像加载到内存中
小屏幕设备的内存往往较少,因此这可能导致OutOfMemoryException
从设计的角度来看,您也无法控制缩放图像的外观。根据您的用例,这可能是好的
有什么建议吗
正确的方法是预先缩放您的可绘制文件,并将其放置在适当的可绘制文件夹中。1x资产进入可绘制mdpi,缩放到1.5x的资产进入可绘制hdpi,等等。然后Android将只加载设备屏幕大小的正确大小的资产。需要注意一些问题。 1.您应该尽可能优化图像,以便在低端设备中 在加载映像OutOfMemory时,不存在错误。 2.获取高分辨率图像,并基于应用程序将使用的设备 支持将该图像放在xxhdpi或xxxhdpi资源文件夹中。 3.Android会自动缩小比例,保持图像的纵横比
加载时。添加到Tanis answer中,请检查以生成不同缩放版本的图像。如果图像是HI-REST,单独的PNG会增加APK的大小。如果APK大小对你来说很重要,那么就考虑使用。谢谢你的详细回答,并且对于@暴雪的评论来说,真的帮助了我,谢谢大家。