Re: [問題] android繪圖板擦子如何寫?
※ 引述《afz096 (我被淡水的路寵壞了)》之銘言:
: ※ 引述《mkia1142 (maki)》之銘言:
: : 我們的期未報告會做類似繪圖板的功能
: : 想要讓他增加可以有辦法擦掉之前畫的東西
: : 不知道該怎麼,麻煩大家指點一下了,謝謝
: 我想到下面兩種方式:
: 如果想要的功能是反悔(undo),
: 那需要把所畫的每個物件存起來,
: 利用座標、半徑、透明度等等參數,存下每一次畫的物件。
: 這樣要 undo 或是 redo 都很方便。
: 這個方式印象中是遙遠以前看 java SDK 所附的 sample code。
: /demo/applets/GrahpicsTest/
: 如果想要的功能是橡皮擦(eraser),
: 應該就是等於畫筆的功能,只不過顏色是背景顏色。
: 希望有幫得上你:)
Eraser可以有四種功能:
(1) 清空畫面
(2) 橡皮擦
(3) un-do
(4) re-do
你可以把每一筆的資料利用List存下來,可能會存的資訊可以有:
(1) Paint 顏色(ARGB)
(2) Paint 粗細(StrokeWidth)
(3) Paint 效果
(3) 初始點(x_1, y_1)
(4) 結束點(x_n, y_n)
通常來說,像是矩形、三角形、圓形、橢圓等都只需要上面這幾個特性。
若是直線另外還要用一條List存每一個點(x_2,y_2)~(x_n-1, y_n-1)
un-do和re-do就只是List上的pop和push而已,演算法就自己想,很簡單的。
這邊的所有事情都可以用到OOP的特性封裝、繼承、多型。
可以參考一下Android SDK裡的samples裡面的APIdemo,
做這個繪圖板可以看: finger和Path Effect。
橡皮擦可以用setXformode還是直接設定顏色為背景色的作法就可以更簡單達成。
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.38.241.180
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):