【问题标题】:Slow App with Background image带有背景图像的慢速应用程序
【发布时间】:2013-06-24 12:36:05
【问题描述】:

我正在为安卓制作一个小游戏。它在白色背景上工作时工作顺利,但是当我想放置背景图像时,它变得越来越慢。首先,我尝试将其添加为布局背景图像,但速度很慢,动画是逐帧发生的。然后我决定在画布上将背景图像绘制为位图,结果比上一个要快一点,但与白色背景相比仍然没有什么。

我尝试多次缩放图像,我用更高的分辨率,更低的分辨率,但结果没有改变,它仍然更慢。

所以我想问一下,有没有一种方法可以在不损失应用程序流畅度和速度的情况下将背景图像添加到 android 应用程序中?

谢谢

P.S:我正在 Sony Tablet S 上试用我的应用程序

【问题讨论】:

  • 是的,您只需通过 xml 添加背景。但是您提到动画-这是动画图像吗?以及您使用什么代码来显示图像,特别是如果它是动画的
  • 这张图片的尺寸是多少?
  • @PiotrChojnacki 我有不同尺寸的图像,它的 1920x1080 和 1280x720
  • @GabeSechan 图片没有动画,它只是一个普通的 png 背景
  • @GabeSechan 我首先将它与 android:background 放在布局中。但它太慢了,然后我把它放在自定义视图中,并从中创建了一个位图,然后我使用了 onDraw canvas.drawBitmap()

标签: android image background bitmap android-canvas


【解决方案1】:

已经很晚了,但是如果其他人也有同样的问题; 在绘图时它可能会尝试再次调整大小,您可以使用 no-dpi (drawable-nodpi / drawable-sw600dp-nodpi) 文件夹来跳过需要大量 CPU 和时间的调整大小。

还有其他原因可能导致此问题,我假设您忘记回收旧的位图。

【讨论】:

  • 这样就解决了问题! drawable-nodpi 文件夹。谢谢!
  • 太棒了。也许不是最干净的解决方案,但会在短期内使用。
  • 救命稻草!这个小小的改变让我的应用与众不同
  • 你救了我的命,兄弟。解决这个问题已经一个多小时了。谢谢
【解决方案2】:

最近我遇到了同样的问题,没有答案帮助我。但是在玩了这么多小时的代码之后,我找到了一个了不起的解决方案。你要做的就是将你的背景图像复制到所有可绘制的文件夹(drawable-hdpi,drawable -xhdpi ...等),就是这样。而且我的背景图片是 590kb 文件大小的 png。请注意图像尺寸,因为尺寸越大,应用程序就越慢。 希望这对某人有帮助。 :-)

【讨论】:

  • 我在使用面向 Android 的 Xamarin Forms 转换视图时遇到了动画问题。首先,我所有的图像都只在资源/drawable 上。将它们复制到不同的可绘制文件夹后,视图转换工作顺利。提示:为每个 dpi 使用正确大小的图像。
【解决方案3】:

您注意到滞后的主要原因是图像需要,因为您需要将背景图像复制到所有可绘制文件夹(drawable-hdpi、drawable-xhdpi...等)。我使用名为 Android Drawable Importer 的 Android Studio 插件进行自动化。奇迹般有效。

【讨论】:

    【解决方案4】:

    为了获得出色的性能,请使用平铺背景,您可以找到很好的解释here

    【讨论】:

      【解决方案5】:

      我和你处于同样的位置。 我有一个非常简单的应用程序,当我添加一些背景时它会出现滞后。试试这个应用 9-patch-resizer - Transform the image dimensions for all screens

      然后是这个工具,它采用xhdpi PNG文件或9.png文件,并自动生成ldpi、mdpi和hdpi png文件。

      当它转换图像时,将每个文件移动到它自己的项目文件夹(resources/mipmap-hdpi ,mipmap-xhdpi ...等)

      【讨论】:

        【解决方案6】:

        保持平滑的背景图像分辨率

        DPI Size in Pixels
        xxxhdpi 1280x1920
        xxhdpi 960x1600
        xhdpi 640x960
        hdpi 480x800
        mdpi 320x480
        ldpi 240x320

        您需要使用与上述分辨率匹配的背景图片,以避免滞后或变慢!

        如果您使用超出上述限制的高分辨率图像实际上会导致此问题,建议仅使用 png

        【讨论】:

          【解决方案7】:

          我也面临同样的问题,我有一个非常简单的应用程序,当我在白色背景上运行它时,它工作得很好。但是当我添加背景图像时,它是滞后的,但经过一些调整,我已经弄清楚如何使用背景图像顺利运行应用程序。您只需要调整背景图像的大小,同时降低图像的质量,这是因为图像的大小与您的应用程序性能成正比。所以唯一的解决方案是调整它的大小并降低图像的质量。 希望我的回答对你有所帮助。

          【讨论】:

            猜你喜欢
            • 2011-08-02
            • 2012-12-25
            • 2012-06-22
            • 1970-01-01
            • 2012-07-14
            • 1970-01-01
            • 1970-01-01
            • 2016-08-07
            • 1970-01-01
            相关资源
            最近更新 更多