[問題] ondraw 重繪問題

看板AndroidDev作者 (songs)時間12年前 (2013/10/30 22:32), 編輯推噓6(6017)
留言23則, 4人參與, 最新討論串1/1
在onDraw(canvas)內 及時繪圖 先在裡面用drawcircle(x,y,r,pen) 觸控才畫下第一個圓 而觸控畫下第二個圓的時候 第一個圓就會消失 請問有辦法解決這個問題嗎? 我是想實作小畫家的功能.. 另外也想請問,有沒有一種方法 是可以把之前所繪的畫面,存起來 每一次,除了將存起來的畫面重繪以外, 還會把使用者觸控畫的(也就是最後畫的)圖形,也存進去裡面 然後再不斷重新繪製. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.205.97.25

10/30 23:10, , 1F
實現重繪可以記錄坐標再繪畫一次
10/30 23:10, 1F

10/31 11:07, , 2F
請問有更好的辦法嗎? 這個方法到最後如果使用者真的畫很多圖
10/31 11:07, 2F

10/31 11:07, , 3F
的畫,速度會越來越慢...
10/31 11:07, 3F

10/31 14:07, , 4F
用List<Path>記錄每一筆 超過一定筆數畫成一張Bitmap
10/31 14:07, 4F

10/31 14:08, , 5F
然後清空List 這樣可以確保重繪不會超過一定次數
10/31 14:08, 5F

10/31 14:42, , 6F
利用drawPath去畫圖 再呼叫path.addCircle去畫圓
10/31 14:42, 6F

10/31 14:46, , 7F
用ArrayList<Path>去紀錄新增的path
10/31 14:46, 7F

10/31 22:46, , 8F
請問f大是指將onDraw內的圖片存成bitmap嗎?
10/31 22:46, 8F

10/31 22:46, , 9F
這要如何實作呢?
10/31 22:46, 9F

11/01 00:37, , 10F
感謝s大~方法可行
11/01 00:37, 10F

11/01 00:37, , 11F
但如果要DrawLine()的話 path好像沒有提供這種函式
11/01 00:37, 11F

11/01 02:54, , 12F
利用moveTo跟 lineTo 可以寫字跟畫線,看你怎麼運用。我是
11/01 02:54, 12F

11/01 02:54, , 13F
利用motionEvent一起搭配使用。
11/01 02:54, 13F

11/01 22:01, , 14F
了解 感謝您
11/01 22:01, 14F

11/01 22:52, , 15F
可以另外請教 ArrayList<Path> 是為了path的顏色
11/01 22:52, 15F

11/01 22:53, , 16F
而記錄的嗎?
11/01 22:53, 16F

11/02 00:06, , 17F
為畫圖的路徑而存
11/02 00:06, 17F

11/02 00:09, , 19F
anvas-redo-and-undo-operation
11/02 00:09, 19F

11/02 00:09, , 21F
html
11/02 00:09, 21F

11/02 00:11, , 22F
這兩篇裡頭有範例、寫得很不錯。可以參考一下。
11/02 00:11, 22F

11/02 10:09, , 23F
好的 謝謝s大
11/02 10:09, 23F
文章代碼(AID): #1ISHXrux (AndroidDev)