0

我有两个图像重叠,我在 ACTION_MOVE 时将像素从底部图像复制到顶部图像。我的目标是给用户带来擦除的感觉,但有时它不会复制(擦除)某些部分,如果触摸事件很快(快速拖动手指)会变得更糟。

这是我用于复制像素的代码

mutable.getPixels(pixels, 0, width, xPos,  yPos, width, height) ;
mutable2.setPixels(pixels, 0, width,xPos,  yPos, width, height) ;
4

2 回答 2

2

我不会讨论性能问题(在主线程中进行渲染可能会很好,也可能不会,这取决于你在做什么)。但是,如果您需要获取所有触摸数据,您应该使用 MotionEvent.getHistoricalSize() 和相关方法来检索从您处理的最后一个 MotionEvent 到此 MotionEvent 中的当前位置发生的任何中间运动。

于 2010-10-29T03:58:34.237 回答
1

将所有触摸事件存储在一个队列中,并在第二个线程中进行图像处理。永远不要在主线程中做任何昂贵的事情!

此外,尽量减少获取和设置像素的区域。当然,如果你已经得到了像素,就不要再得到它们(假设它们没有改变)。

此外,如果您在操作中做了很多繁重的工作,您可能需要考虑将 JNI 作为最后的手段。真的,真的是最后的手段。

于 2010-10-28T21:34:55.063 回答