請問兩個函數postInvalidate() 和 Invalidate()

看板AndroidDev作者 (ㄚ年)時間14年前 (2012/03/29 02:13), 編輯推噓1(1012)
留言13則, 3人參與, 最新討論串1/1
如題 我想請問這兩個函數怎麼使用, 找了很多網路上文章 但小弟我不材 不懂它們的意思 如 : http://www.guan8.net/Java/463321.html 這篇所說 所以 想請教高手們如何使用這兩個函數 以及,何時可以使用這兩個函數 我目前是想在surfaceView中畫圖 然而想要手指接觸螢幕那時候就要把圖畫顯示出來 應該是要利用 這兩個函式去更新圖案這樣對嘛!? 但是 我又看到文章說 surfaceView 必須在unlock時才會把圖案顯示出來 如此 我該如何作比較好??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.225.252

03/29 20:20, , 1F
可以利用 onTouchEvent 來更新圖案
03/29 20:20, 1F

03/31 19:18, , 2F
surfaceView通常不用管invalidate的問題
03/31 19:18, 2F

03/31 19:18, , 3F
直接用lock選canvas, 在unlock的時候就會重畫了
03/31 19:18, 3F

03/31 19:19, , 4F
除非你想要invalidate的範圍不是全螢幕..
03/31 19:19, 4F

04/01 04:04, , 5F
那請問有辦法一邊畫的時候,就直接unlock嘛?
04/01 04:04, 5F

04/01 12:19, , 6F
會有這疑問我覺得也許先查一下什麼叫做buffered drawing
04/01 12:19, 6F

04/01 12:19, , 7F
會比較好(汗),基本上這是比較牽涉到顯示卡記憶體怎麼
04/01 12:19, 7F

04/01 12:19, , 8F
顯示到螢幕上的問題,比較不容易三言兩語說清楚
04/01 12:19, 8F

04/01 12:20, , 9F
基本上,正常情況下不應該一邊畫一邊unlock
04/01 12:20, 9F

04/01 12:20, , 10F
每次的繪畫都應該是以frame為單位 一次畫完
04/01 12:20, 10F

04/01 12:20, , 11F
android的lock/unlock系統在手機上是以單buffer的方式
04/01 12:20, 11F

04/01 12:21, , 12F
實作,不過我記得後面的平板是以double buffer來作
04/01 12:21, 12F

04/01 12:21, , 13F
總之,這是計算機圖學的東西,比較難解釋
04/01 12:21, 13F
文章代碼(AID): #1FSrJ7AI (AndroidDev)