0

我有兩個圖像覆蓋,我從底部圖像複製像素到頂部圖像,而ACTION_MOVE。我的目標是爲用戶提供擦除感,但有時它不會複製(擦除)某些部分,並且如果觸摸事件快(快速拖動手指),則會變得更糟。觸摸事件時的圖像操作效率低下!

這是代碼我使用複製像素

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

回答

1

存儲所有的觸摸事件在隊列中,做圖像處理的第二個線程。永遠不要在主線程中做任何昂貴的事情!

此外,儘量減少您獲取和設置像素的面積。當然,如果你已經有了這些像素,不要再拿它們(假設它們沒有改變)。另外,如果你在操作中做了很多繁重的工作,你可能會考慮將JNI作爲最後的手段。真的,最後的手段。

2

我不會解決性能問題(在主線程中執行渲染可能很好,或者可能沒有,這取決於你在做什麼)。但是,如果您需要獲取所有觸摸數據,則應使用MotionEvent.getHistoricalSize()和相關方法來檢索從您處理的上一個MotionEvent到此MotionEvent中當前位置發生的任何中間移動。