Android開發(fā)學(xué)習(xí)——Day28(綜合實(shí)戰(zhàn):畫板)

學(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é)字體條、畫板和顏色硅急;下部分——操作按鈕


設(shè)計(jì)分析--布局方式

2)主要采用約束布局覆享,因?yàn)椴缓么_定某些控件的具體大小营袜;兼有線性布局:


設(shè)計(jì)分析--控件布局一


設(shè)計(jì)分析--控件布局二

3)橫豎屏切換:

注意:在AndroidMainfest.xml文件中設(shè)置activity屬性:

android:configChanges=“orientation|keyboard|keyboardHidden|screenSize”

以保證在畫完線條之后橫豎屏切換時(shí)數(shù)據(jù)不會(huì)丟失撒顿。


實(shí)現(xiàn)效果--豎屏


實(shí)現(xiàn)效果--橫屏

二、自定義控件:滑動(dòng)條

1)xml配置


代碼實(shí)現(xiàn)--xml配置

2)初始化畫筆


代碼實(shí)現(xiàn)--初始化畫筆

3)繪制

屏幕為橫屏?xí)r的滑動(dòng)條:

代碼實(shí)現(xiàn)--點(diǎn)線繪制(橫)

屏幕為豎著時(shí)是類似的荚板,改變對(duì)應(yīng)的值即可:

代碼實(shí)現(xiàn)--點(diǎn)線繪制(豎)

注意:區(qū)分橫豎屏的不同凤壁,計(jì)算觸摸點(diǎn),使實(shí)現(xiàn)滑動(dòng)條的效果跪另。

4)通過(guò)點(diǎn)觸拧抖、拖動(dòng)來(lái)改變滑動(dòng)條

代碼實(shí)現(xiàn)--滑動(dòng)條的改變

改變操作的實(shí)現(xiàn)是通過(guò)接口信息回調(diào)實(shí)現(xiàn)的:

1>創(chuàng)建一個(gè)接口,定義抽象方法

代碼實(shí)現(xiàn)--創(chuàng)建接口

2>創(chuàng)建一個(gè)對(duì)象監(jiān)聽變化

代碼實(shí)現(xiàn)--創(chuàng)建監(jiān)聽者

set方法外部調(diào)用免绿,傳入一個(gè)監(jiān)聽對(duì)象:

代碼實(shí)現(xiàn)--實(shí)現(xiàn)set方法

3>信息的回調(diào)處理

代碼實(shí)現(xiàn)--信息處理

4>主調(diào)函數(shù)中實(shí)現(xiàn)接口

代碼實(shí)現(xiàn)--實(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)按事件秒咐,繪制線條

代碼實(shí)現(xiàn)--繪畫

注意到上述繪制的線條信息全部由兩個(gè)數(shù)組保存了,這是為了之后的撤銷等操作碘裕。

2.創(chuàng)建保存線條信息的數(shù)組

代碼實(shí)現(xiàn)--保存線條

將線條的信息保存好之后携取,遍歷數(shù)組就可以得到圖形了。

3.得到圖形

代碼實(shí)現(xiàn)--得到圖形

得到圖形后帮孔,可以進(jìn)行相應(yīng)的一些操作雷滋。

4.橡皮擦、撤銷文兢、返回晤斩、清空、換色和保存操作

待更新...

四禽作、顏色板和操作按鈕

顏色版和操作按鈕本質(zhì)上就是在一個(gè)線性布局下的若干個(gè)按鈕

代碼實(shí)現(xiàn)--顏色板


代碼實(shí)現(xiàn)--操作按鈕

要注意的是尸昧,每一個(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ì)有所收獲顽素。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市徒蟆,隨后出現(xiàn)的幾起案子胁出,更是在濱河造成了極大的恐慌,老刑警劉巖段审,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件全蝶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡戚哎,警方通過(guò)查閱死者的電腦和手機(jī)裸诽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)型凳,“玉大人丈冬,你說(shuō)我怎么就攤上這事「食” “怎么了埂蕊?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)疏唾。 經(jīng)常有香客問(wèn)我蓄氧,道長(zhǎng),這世上最難降的妖魔是什么槐脏? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任喉童,我火速辦了婚禮,結(jié)果婚禮上顿天,老公的妹妹穿的比我還像新娘堂氯。我一直安慰自己,他們只是感情好牌废,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布咽白。 她就那樣靜靜地躺著,像睡著了一般鸟缕。 火紅的嫁衣襯著肌膚如雪晶框。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天懂从,我揣著相機(jī)與錄音授段,去河邊找鬼。 笑死番甩,一個(gè)胖子當(dāng)著我的面吹牛畴蒲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播对室,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼模燥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了掩宜?” 一聲冷哼從身側(cè)響起蔫骂,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牺汤,沒(méi)想到半個(gè)月后辽旋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡檐迟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年补胚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片追迟。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溶其,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敦间,到底是詐尸還是另有隱情瓶逃,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布廓块,位于F島的核電站厢绝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏带猴。R本人自食惡果不足惜昔汉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拴清。 院中可真熱鬧靶病,春花似錦、人聲如沸贷掖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)苹威。三九已至昆咽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牙甫,已是汗流浹背掷酗。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窟哺,地道東北人泻轰。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像且轨,于是被迫代替她去往敵國(guó)和親浮声。 傳聞我的和親對(duì)象是個(gè)殘疾皇子虚婿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容