【问题标题】:Image manipulation while on touch event is inefficient !触摸事件时的图像处理效率低下!
【发布时间】:2010-10-28 21:31:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: android image-processing image-manipulation touch touch-event


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-12
        • 2016-05-28
        • 1970-01-01
        • 2013-05-09
        相关资源
        最近更新 更多