我正在为Android做一个小游戏。当它在白色背景上工作时它工作顺利,但是当我想要放置背景图像时,它变得越来越慢。首先我尝试将其添加为布局背景图像,但它非常慢,动画是逐帧发生的。然后我决定将背景图像绘制为画布上的位图,结果比前一个稍微快一点,但与白色背景相比仍然没什么。
我试图多次缩放图像,我用更高的分辨率,更低的分辨率做到了,但结果没有改变,它仍然更慢。
所以我想问一下,有没有办法在没有失去应用程序的平滑性和速度的情况下为Android应用程序添加背景图像?
由于
P.S:我在Sony Tablet S上试用我的应用程序
答案 0 :(得分:41)
它很晚但如果其他人有同样的问题; 在绘图上它可能会尝试再次调整大小,你可以使用no-dpi(drawable-nodpi / drawable-sw600dp-nodpi)文件夹跳过调整大小,这需要很多cpu和时间。
还有别的东西可能导致这种情况,我认为你忘了回收旧的位图。
答案 1 :(得分:4)
您注意到滞后的主要原因是图像需要,因为您需要将背景图像复制到所有可绘制文件夹(drawable-hdpi,drawable-xhdpi等等)。我使用名为Android Drawable Importer的Android Studio插件进行自动化。奇迹般有效。
答案 2 :(得分:1)
为了获得出色的性能,请使用平铺背景,您可以找到很好的解释here
答案 3 :(得分:1)
我和你在同一个位置。 我有一个非常简单的应用程序,当我添加一些背景时它有滞后。试试这个应用 9-patch-resizer - Transform the image dimensions for all screens
然后是这个工具,它采用xhdpi PNG文件或9.png文件,并自动生成ldpi,mdpi和hdpi png文件。
当它转换图像时,将每个文件移动到它自己的项目文件夹(resources / mipmap-hdpi,mipmap-xhdpi ...等)
答案 4 :(得分:0)
背景图像分辨率,以保持平滑
DPI | 像素大小 |
---|---|
xxxhdpi | 1280x1920 |
xxhdpi | 960x1600 |
xhdpi | 640x960 |
hdpi | 480x800 |
mdpi | 320x480 |
ldpi | 240x320 |
您需要使用与上述分辨率匹配的背景图片,以免出现滞后或速度变慢!!
如果使用超出上述限制的高分辨率图像,实际上会导致此问题,建议仅使用png
答案 5 :(得分:-1)
Iam也面临着同样的问题,当Iam在白色背景上运行时,我有一个非常简单的应用程序,它工作正常。但是,当Iam添加背景图片时,它会滞后,但是经过一些调整后,我想出了如何使用背景图片顺利运行该应用程序。您只需要调整背景图片的大小,并降低图片质量,这是因为图片的大小与您的应用性能成正比。因此,唯一的解决方案是调整其大小并降低图像的质量。 希望我的回答对您有所帮助。