學(xué)習(xí)目的
學(xué)習(xí)開發(fā)一個(gè)較為全面的小項(xiàng)目。
學(xué)習(xí)過(guò)程
從頭開始,分析考慮用戶需求,一步一步實(shí)現(xiàn)畫板的基本功能或杠。
技術(shù)
1.把握代碼時(shí)機(jī)
注意系統(tǒng)自調(diào)用方法的順序,避免出現(xiàn)使用某對(duì)象的屬性時(shí)宣蔚,值為空向抢。(說(shuō)明值的傳入在使用之后了)
2.布局方式
基本使用約束布局,也與線性布局嵌套胚委。
3.繪制控件
實(shí)現(xiàn)的某些功能控件需要自己繪制挟鸠,具體的操作可以移步至本人Android開發(fā)學(xué)習(xí)Day26,Day27的文章亩冬。
我們先來(lái)看看實(shí)現(xiàn)效果:
待更新...
具體的實(shí)現(xiàn)過(guò)程如下:
一艘希、布局方式
1)整體分為兩大布局塊:上部分——調(diào)節(jié)字體條、畫板和顏色硅急;下部分——操作按鈕
2)主要采用約束布局覆享,因?yàn)椴缓么_定某些控件的具體大小营袜;兼有線性布局:
3)橫豎屏切換:
注意:在AndroidMainfest.xml文件中設(shè)置activity屬性:
android:configChanges=“orientation|keyboard|keyboardHidden|screenSize”
以保證在畫完線條之后橫豎屏切換時(shí)數(shù)據(jù)不會(huì)丟失撒顿。
二、自定義控件:滑動(dòng)條
1)xml配置
2)初始化畫筆
3)繪制
屏幕為橫屏?xí)r的滑動(dòng)條:
屏幕為豎著時(shí)是類似的荚板,改變對(duì)應(yīng)的值即可:
注意:區(qū)分橫豎屏的不同凤壁,計(jì)算觸摸點(diǎn),使實(shí)現(xiàn)滑動(dòng)條的效果跪另。
4)通過(guò)點(diǎn)觸拧抖、拖動(dòng)來(lái)改變滑動(dòng)條
改變操作的實(shí)現(xiàn)是通過(guò)接口信息回調(diào)實(shí)現(xiàn)的:
1>創(chuàng)建一個(gè)接口,定義抽象方法
2>創(chuàng)建一個(gè)對(duì)象監(jiān)聽變化
set方法外部調(diào)用免绿,傳入一個(gè)監(jiān)聽對(duì)象:
3>信息的回調(diào)處理
4>主調(diào)函數(shù)中實(shí)現(xiàn)接口
Ps:上述數(shù)據(jù)的回調(diào)操作設(shè)置畫筆線條的粗細(xì)實(shí)現(xiàn)思路是這樣的徙鱼。
首先,程序運(yùn)行到主調(diào)函數(shù)中针姿,設(shè)置Slider控件的監(jiān)聽者塌鸯,創(chuàng)建一個(gè)匿名對(duì)象捺癞,然后將新創(chuàng)建的對(duì)象傳入Slider類中;
接著拦耐,在Slider類中婶希,通過(guò)點(diǎn)觸事件調(diào)用callback方法榕暇;
而后,在callback方法中,對(duì)信息進(jìn)行處理后(通過(guò)小圓點(diǎn)的位置得出進(jìn)度)彤枢,再計(jì)算出畫筆應(yīng)設(shè)的粗細(xì)后將值設(shè)置狰晚;
最后,這個(gè)值傳入主調(diào)函數(shù)中缴啡,實(shí)現(xiàn)抽象方法壁晒,設(shè)置線條粗細(xì)。
三业栅、自定義控件:畫板
1.監(jiān)聽點(diǎn)按事件秒咐,繪制線條
注意到上述繪制的線條信息全部由兩個(gè)數(shù)組保存了,這是為了之后的撤銷等操作碘裕。
2.創(chuàng)建保存線條信息的數(shù)組
將線條的信息保存好之后携取,遍歷數(shù)組就可以得到圖形了。
3.得到圖形
得到圖形后帮孔,可以進(jìn)行相應(yīng)的一些操作雷滋。
4.橡皮擦、撤銷文兢、返回晤斩、清空、換色和保存操作
待更新...
四禽作、顏色板和操作按鈕
顏色版和操作按鈕本質(zhì)上就是在一個(gè)線性布局下的若干個(gè)按鈕
要注意的是尸昧,每一個(gè)按鈕都添加了onClick屬性,然后再在對(duì)應(yīng)的類中寫相關(guān)代碼就可以了旷偿。
感悟
繼手勢(shì)解鎖實(shí)戰(zhàn)后烹俗,終于又做了一個(gè)復(fù)雜度和完整度比較高的實(shí)戰(zhàn)。在這個(gè)過(guò)程中萍程,自己對(duì)以往了一些知識(shí)有了一個(gè)回顧幢妄,也有了一個(gè)更深的理解,比如實(shí)現(xiàn)滑動(dòng)條的數(shù)據(jù)回調(diào)茫负。還體會(huì)到了在開發(fā)一個(gè)較為完整蕉鸳,有較強(qiáng)功能需求的APP時(shí),中間會(huì)涉及到很多數(shù)據(jù)信息的交流忍法、回調(diào)潮尝,有的時(shí)候思路會(huì)很亂。不過(guò)多看幾遍就能明白來(lái)龍去脈饿序。學(xué)習(xí)了這么一段時(shí)間勉失,我發(fā)現(xiàn)自己進(jìn)步很多。并且明白了原探,只要自己肯去做乱凿,就一定會(huì)有所收獲顽素。