Android 触摸事件时的图像处理效率低下!

Android 触摸事件时的图像处理效率低下!,android,image-processing,image-manipulation,touch,touch-event,Android,Image Processing,Image Manipulation,Touch,Touch Event,我有两个图像重叠,我复制的像素从底部图像到顶部图像,而行动_移动。我的目标是给用户擦除的感觉,但有时它不会复制(擦除)某些部分,如果触摸事件很快(快速拖动手指),情况会变得更糟 这是我用来复制像素的代码 mutable.getPixels(pixels, 0, width, xPos, yPos, width, height) ; mutable2.setPixels(pixels, 0, width,xPos, yPos, width, height) ; 将所有触摸事件存储在队列中,并

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

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

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

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

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


也就是说,如果你在操作中做了很多繁重的事情,你可能会认为JNI是最后一招。真的,真的是万不得已。

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

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


也就是说,如果你在操作中做了很多繁重的事情,你可能会认为JNI是最后一招。真的,真的是万不得已。

我不会讨论性能问题(在主线程中进行渲染可以,也可以不进行渲染,这取决于您正在执行的操作)。但是,如果需要获取所有触摸数据,则应使用MotionEvent.getHistoricalSize()和相关方法来检索从上次处理的MotionEvent到此MotionEvent中的当前位置发生的任何中间移动。

我将不讨论性能问题(可以在主线程中进行渲染,也可以不进行渲染,具体取决于您正在执行的操作)。但是,如果需要获取所有触摸数据,则应使用MotionEvent.getHistoricalSize()以及相关方法,以检索从上次处理的MotionEvent到此MotionEvent中的当前位置发生的任何中间移动