为什么在某些安卓2.2手机上绘制位图非常缓慢?

6
我有一个简单的纸牌游戏,用户可以在屏幕上拖放卡牌。在一些2.2版安卓手机上(例如Droid和EVO),绘制卡牌非常缓慢。这很奇怪,因为这种情况发生在一些更快的手机上。然而,并不是所有的手机都会出现这种问题,我测试了Droid和Droid X,程序运行得很好,比如在速度较慢的G1上也很好。我开始在Motorolla发布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开发,但是可能有些设备使用不同的本机位图格式吗?我会尝试使用与设备本机兼容的格式,并期望这将是最快的。 - Lucero
我正在使用png文件。奇怪的是,在2.1版本的Droid上运行良好,但在一些2.2版本的Droid手机上运行缓慢。我认为这可能是一个bug,但我仍然需要一个好的解决方法。 - theJosh
1
这些卡片有多大?另外,你从哪里获取位图?你是否将它们用作离屏缓冲区?位图的分辨率是多少? - Joe Plante
原始图像文件存储在哪里?是在Raw或Image文件夹中吗?它们是如何导入项目的?我使用image2 = BitmapFactory.decodeResource(getResources(), R.drawable.example); - Music Monkey
默认使用的位图通道在不同版本和硬件制造商中是不同的。尝试将其设置为某个值,并在快速设备和慢速设备上测试它。 - Warpzit
1个回答

0

可能这些是您正在尝试处理的一些大型位图。请查看此Android培训高效加载大型位图

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接