0

我在更新为 Jelly Bean 的设备上的一个应用程序上有一个奇怪的行为。这个游戏做了一个:canvas.drawBitmap(bitmap, locationX ,locationY, null); 我的位图可以有 2 种尺寸:40x15 和 60x15。

在 Jelly Bean 设备上(我在 Galaxy Nexus 和 Nexus S 上试过),使用 60x15 的位图时,drawBitmap 什么也不画。如果我将大小调整为 40x15,它可以正常工作。

我对较低版本的android没有任何问题。

提前致谢!

4

2 回答 2

1

我通过将所有图形的副本存储在“/drawable-nodpi”中找到了解决方法。然后果冻豆给他们看。

于 2012-08-07T11:04:22.773 回答
0

Jellybean 似乎为 drawBitmap() 引入了新的缓存行为。现在它尝试在硬件中为每个位图对象缓存纹理。

这意味着如果您重绘同一个位图对象,它将重新使用之前的纹理。但是它不会检查位图对象的内容是否发生了变化,它只是使用指针来查找缓存。

在我看来,这完全被打破了,但他们显然出于性能原因决定这样做。类似的逻辑适用于 drawPath()。

我怀疑不同大小的行为是因为当您调整位图大小时,它会导致分配一个新的缓冲区。

于 2013-08-08T02:22:57.800 回答