【问题标题】:Why is drawing bitmaps is very slow on some android 2.2 phones?为什么在某些 android 2.2 手机上绘制位图很慢?
【发布时间】:2023-03-15 11:49:01
【问题描述】:

我有一个简单的纸牌游戏,用户可以在屏幕上拖放纸牌。在 Droid 和 EVO 等一些 2.2 android 手机上,抽卡非常缓慢。这很奇怪,因为它发生在一些速度更快的手机上。然而,并不是我在 Droid 和 Droid X 上测试的所有手机,程序运行良好,在 G1 等速度较慢的手机上也运行良好。在摩托罗拉发布 Droid 2.2 更新后,我开始收到有关此问题的报告。

这是我想出的解决方法,但它确实降低了我的图形质量。渐变看起来很可怕。

我改变了这个

Bitmap.createBitmap(newBmp.getWidth(), newBmp.getHeight(), Bitmap.Config.ARGB_8888);

到这里

Bitmap.createBitmap(newBmp.getWidth(), newBmp.getHeight(), Bitmap.Config.ARGB_4444);

问题消失了,但外观受到影响。我需要保留 alpha 通道,所以我不能使用 RGB_565。有什么方法可以保持我的高质量图像并且不会让它运行得这么慢吗?

【问题讨论】:

  • 我不了解Android开发,但会不会是某些设备使用了不同的原生位图格式?我会尝试使用设备原生的格式,并希望这是最快的。
  • 我正在使用 png 文件。奇怪的是,它在 2.1 的 Droid 上运行良好,但在一些 2.2 的 Droid 手机上运行缓慢。我认为这可能是一个错误,但我仍然需要解决这个问题。
  • 这些卡有多大?另外,您从哪里获得位图?您是否将它们用作屏幕外缓冲区?位图的分辨率是多少?
  • 原始图像文件存储在哪里?在 Raw 或 image 文件夹中?它们是如何被导入到项目中的?我使用 image2 = BitmapFactory.decodeResource(getResources(), R.drawable.example);
  • 使用的默认位图通道因版本和硬件制造商而异。尝试将其设置为某种东西并在快速和慢速设备上进行测试。

标签: android animation bitmap android-canvas


【解决方案1】:

可能这些是您正在尝试处理的一些大型Bitmaps。看看这个android培训Loading Large Bitmaps Efficiently

我认为这可以帮助您提高性能并使加载位图不会阻塞主 UI 线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2020-11-01
    • 1970-01-01
    • 2012-12-13
    相关资源
    最近更新 更多