Android自定義view的一些實(shí)踐

俗話說 :好記性不如爛筆頭 魯迅說:爛筆頭不如在簡(jiǎn)書記一下(魯迅:“我從沒說過那句話!”) 所以? 我就在簡(jiǎn)書記一下 主題如標(biāo)題 內(nèi)容?? 在下面。

What?

看名字就知道了( 自定義 的 View)

Why?

為什么要自定義View?

主要是Android系統(tǒng)內(nèi)置的View無法實(shí)現(xiàn)我們的需求,我們需要針對(duì)我們的業(yè)務(wù)需求定制我們想要的View。(理想很豐滿,現(xiàn)實(shí)很骨感?。?/p>

How?

怎樣實(shí)現(xiàn)自定義View

首先 安卓自定義View 有三種實(shí)現(xiàn)方式:1,擴(kuò)展;2,組合;3,重寫。打個(gè)比方解釋:1.蒸汽機(jī)(TextView)已經(jīng)有了但還不足以滿足人類需要,所以瓦特改良了蒸汽機(jī)(xxx extends TextView{ 我是改良。。})。2.手機(jī)充電器 -- A有usb線? B有充電頭 把他們組合起來(xxx extends ViewGroup) 就可以充電了。3.我們都有一個(gè)家名字叫中國(View),我們每個(gè)人的家又各不相同(xxx extends View)。

王陽明說“知行合一”,所以我決定 一個(gè)一個(gè)的實(shí)踐一遍。(一種方式舉一個(gè)栗子!)

1.擴(kuò)展方式

目標(biāo):簡(jiǎn)單點(diǎn)---“給文字加個(gè)邊框和背景”

異議:這個(gè)原生就可以很容易實(shí)現(xiàn)了啊,干什么還要寫什么自定義view,浪費(fèi)表情

反駁:你說的對(duì) 可我就要這樣!

擴(kuò)展方式

代碼分析:繼承了TextView 重寫onDraw()方法 黃色畫筆畫矩形布滿控件 綠色畫筆畫的是四周內(nèi)移10的矩形 推測(cè)看到的是黃邊綠底的

擴(kuò)展 ---效果

2.組合方式

目標(biāo):就類似那種title帶回退鍵,標(biāo)題的那種 可以通用

簡(jiǎn)圖:

就類似這種

功能分析:1.要能設(shè)置標(biāo)題; 2.回退鍵有外部點(diǎn)擊事件;3 消息圖標(biāo)由外部點(diǎn)擊事件;消息圖標(biāo)可隱藏

組合方式

代碼里有注釋就不解釋了 可以看到構(gòu)造函數(shù)里有一段代碼 引用資源文件(LayoutInflater.from(context).inflate(R.layout.top_layout,this);):

top_layout.xml部分

這是部分xml代碼? 全部代碼 也就外面套著一個(gè)RelativeLayout 標(biāo)簽。恩!在這里順帶熟悉一下在AndroidStudio里自動(dòng)生成矢量圖的方法:就如上面代碼中引用的圖片資源都是系統(tǒng)生成的。

2.x AndroidStudio里自動(dòng)生成矢量圖

step1

然后就出現(xiàn)下面界面:

step2

好吧 然后點(diǎn)擊安卓圖標(biāo)那個(gè)鍵就可以選圖標(biāo)啦

step3

然后選中一個(gè)點(diǎn)擊Ok 后面就一氣呵成 在這就不做贅述啦

3.重寫方式

目標(biāo):要畫一個(gè)可以動(dòng)的波浪線 最好有個(gè)圓圈在頭部 也能一起動(dòng)

異議:為什么做這種沒用的東西

反駁:好玩啊

額。。。。

想象中的圖:

哈哈!就類似這樣(笑噴)

?看看代碼吧

重寫方式

效果圖:

效果圖

恩 然后 意味深長 的對(duì)自己和大家 道聲:“周末愉快!??!”

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容