進(jìn)度條 2016年6月27日
進(jìn)度條是一個(gè)非常不錯(cuò)的發(fā)明,它直擊了人類的弱點(diǎn)。
設(shè)想一個(gè)沒有進(jìn)度條的世界染厅。安裝游戲的時(shí)候一直在顯示“Loading”界面痘绎,遲遲不見安裝完畢。銀行辦理業(yè)務(wù)的時(shí)候一直沒有提示肖粮,被人插隊(duì)了也不知道孤页。去加油站加油也并不知道需要多久能夠加滿。是不是隱約有著一絲不安涩馆?大部分人都是不確定性的俘虜行施,他們有時(shí)候?qū)幵该鎸?duì)一個(gè)確定的bad ending,也不愿意忍受一點(diǎn)煎熬魂那《旰牛可惜人生并沒有一個(gè)確定的進(jìn)度條,也不是一張?jiān)敿?xì)的進(jìn)度清單涯雅。你必須要有足夠的勇氣和耐心去面對(duì)未來的挑戰(zhàn)鲜结,看到周圍的人做了些什么也不能動(dòng)搖。
你要向著目標(biāo)前進(jìn)斩芭,有時(shí)候會(huì)有迂回轻腺,但是你不能停下來。
今日
- 開始做界面的部分划乖,其實(shí)真正開發(fā)起來時(shí)間是過得很快的贬养。不要被完美主義所牽絆,你需要的是“新澤西”精神琴庵。
- 學(xué)習(xí)整理了 Creating View Class 的方法误算。大體總結(jié)如下:
- 一個(gè)全新的控件分為“視覺”和“功能”兩個(gè)部分。視覺方面主要負(fù)責(zé)控件的外觀和Layout 等迷殿。功能方面則用來處理一些交互事件儿礼。
- 視覺:
onDraw()
方法負(fù)責(zé)繪制控件,相關(guān)的Paint
和Canvas
對(duì)象最好在構(gòu)造方法中準(zhǔn)備好庆寺,因?yàn)槊看螠?zhǔn)備這些對(duì)象都會(huì)調(diào)用很多資源蚊夫,出于性能的考慮,最好減少初始化的次數(shù)懦尝。 其中Canvas 對(duì)象負(fù)責(zé)What to 的問題知纷,Paint 對(duì)象負(fù)責(zé) How to 的問題陵霉。直觀一點(diǎn)來說,Canvas 就是畫布乍桂,Paint 就是畫筆睹酌。- 構(gòu)造方法中可以結(jié)合
TypeArray
和obtainStyledAttributes()
方法來定義一些初始屬性。onMeasure()
方法用來計(jì)算控件的外觀尺寸等等闯传,因?yàn)榭丶⒉皇且粋€(gè)獨(dú)立的單元甥绿,它會(huì)同周圍的元素產(chǎn)生一定的相對(duì)位置關(guān)系则披,所以需要這個(gè)方法來計(jì)算控件的尺寸。這個(gè)方法并沒有返回值图谷,它通過setMeasuredDimension()
方法綁定結(jié)果便贵,如果未調(diào)用這個(gè)方法會(huì)產(chǎn)生RunTimeException同樣onSizeChanged()
方法也是有著類似的作用冗荸,但是相對(duì)來說其精確度會(huì)差一點(diǎn),因?yàn)?code>onMeasure()方法通過View.MeasureSpec
可以與父元素產(chǎn)生相互作用盔粹。
明日
- Chart 的繪制舷嗡。先偽造數(shù)據(jù)測(cè)試嵌莉。
- 基本條目的讀取和存儲(chǔ)锐峭。