Android自定義View的實(shí)現(xiàn)方法實(shí)例詳解
一、自繪控件
下面我們準(zhǔn)備來(lái)自定義一個(gè)計(jì)數(shù)器View,這個(gè)View可以響應(yīng)用戶的點(diǎn)擊事件,并自動(dòng)記錄一共點(diǎn)擊了多少次。新建一個(gè)CounterView繼承自View,代碼如下所示:
可以看到,首先我們?cè)贑ounterView的構(gòu)造函數(shù)中初始化了一些數(shù)據(jù),并給這個(gè)View的本身注冊(cè)了點(diǎn)擊事件,這樣當(dāng)CounterView被點(diǎn)擊的時(shí)候,onClick()方法就會(huì)得到調(diào)用。而onClick()方法中的邏輯就更加簡(jiǎn)單了,只是對(duì)mCount這個(gè)計(jì)數(shù)器加1,然后調(diào)用invalidate()方法。通過(guò) Android視圖狀態(tài)及重繪流程分析,帶你一步步深入了解View(三) 這篇文章的學(xué)習(xí)我們都已經(jīng)知道,調(diào)用invalidate()方法會(huì)導(dǎo)致視圖進(jìn)行重繪,因此onDraw()方法在稍后就將會(huì)得到調(diào)用。
這樣,一個(gè)自定義的View就已經(jīng)完成了,并且目前這個(gè)CounterView是具備自動(dòng)計(jì)數(shù)功能的。那么剩下的問(wèn)題就是如何讓這個(gè)View在界面上顯示出來(lái)了,其實(shí)這也非常簡(jiǎn)單,我們只需要像使用普通的控件一樣來(lái)使用CounterView就可以了。比如在布局文件中加入如下代碼:
可以看到,這里我們將CounterView放入了一個(gè)RelativeLayout中,然后可以像使用普通控件來(lái)給CounterView指定各種屬性,比如通過(guò)layout_width和layout_height來(lái)指定CounterView的寬高,通過(guò)android:layout_centerInParent來(lái)指定它在布局里居中顯示。只不過(guò)需要注意,自定義的View在使用的時(shí)候一定要寫出完整的包名,不然系統(tǒng)將無(wú)法找到這個(gè)View。
總結(jié)
以上所述是小編給大家介紹的Android自定義View的實(shí)現(xiàn)方法實(shí)例詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android開(kāi)發(fā)之Wifi基礎(chǔ)教程
這篇文章主要介紹了Android開(kāi)發(fā)Wifi基礎(chǔ)教程,實(shí)例分析了Wifi的各種常見(jiàn)基本技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02android開(kāi)發(fā)教程之listview使用方法
這篇文章主要介紹了android的listview使用方法,需要的朋友可以參考下2014-02-02Android App開(kāi)發(fā)中自定義View和ViewGroup的實(shí)例教程
這篇文章主要介紹了Android App開(kāi)發(fā)中自定義View和ViewGroup的實(shí)例教程,分別介紹了進(jìn)度條和圖片上傳并排列的例子,效果很好很強(qiáng)大,需要的朋友可以參考下2016-05-05安卓(android)仿電商app商品詳情頁(yè)按鈕浮動(dòng)效果
很多電商類app的商品詳情頁(yè)(其他app也有類似效果,比如qq音樂(lè))都有這么一個(gè)效果:當(dāng)用戶向上滑動(dòng)頁(yè)面內(nèi)容超過(guò)一定距離后,中間的標(biāo)題欄會(huì)卡在頂部,往下拉回到固定高度后又會(huì)消失。那么如何實(shí)現(xiàn)這個(gè)效果呢?跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)。2016-08-08Android開(kāi)發(fā)中記一個(gè)SwipeMenuListView側(cè)滑刪除錯(cuò)亂的Bug
這篇文章主要介紹了Android開(kāi)發(fā)中記一個(gè)SwipeMenuListView側(cè)滑刪除錯(cuò)亂的Bug的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09Android中RecyclerView拖拽、側(cè)刪功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android中RecyclerView拖拽、側(cè)刪功能的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-09-09Android嚴(yán)苛模式StrictMode使用詳解
StrictMode類是Android 2.3 (API 9)引入的一個(gè)工具類,可以用來(lái)幫助開(kāi)發(fā)者發(fā)現(xiàn)代碼中的一些不規(guī)范的問(wèn)題,以達(dá)到提升應(yīng)用響應(yīng)能力的目的2018-01-01android如何設(shè)置Activity背景色為透明色
本篇文章主要介紹了android如何設(shè)置Activity背景色為透明色,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07android開(kāi)發(fā)教程之a(chǎn)ndroid的handler使用方法
這篇文章主要介紹了android的handler使用方法,大家參考使用吧2014-01-01