我正在制作一个2D教程,并在三星Galaxy Tab上测试了我的当前教程部分。 教程简单地随机移动默认图标并且通过点击创建一个新的移动图标。只要屏幕上有25个或更少的元素,Galaxy就可以正常运行(60fps)。当第26个元素出现时,帧速率降至25fps。将图像的大小/维度更改为较大的图像时,在第26个元素之前就达不到25fps。这是可以接受的。但在某些无法重现的元素数量上,帧会从(通常高于)10fps下降到1fps。 我尝试了:将位图变量更改为静态变量,因此不是每个元素都有自己的图像,而是都使用相同的图像。这解决了问题,但我怀疑这个解决方案是否合适。数字“25”的神奇效应表明,我只能以这种方式使用25个不同的图像。 有人知道是什么原因导致了这种性能问题吗?这是Samsung修改版Android中的错误吗? 可以通过我的示例eclipse项目进行检查。我的同事找到了一种解决方法。他从中更改了位图的加载方式。
但我们仍然不太明白为什么它会以这种方式工作...
mBitmap = BitmapFactory.decodeResource(res, R.drawable.icon);
为了
mBitmap = BitmapFactory.decodeStream(new BufferedInputStream(res.openRawResource(R.drawable.icon)));
但我们仍然不太明白为什么它会以这种方式工作...