Android自定義View的實(shí)現(xiàn)方法實(shí)例詳解
一、自繪控件
下面我們準(zhǔn)備來自定義一個(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()方法。通過 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ù)功能的。那么剩下的問題就是如何讓這個(gè)View在界面上顯示出來了,其實(shí)這也非常簡(jiǎn)單,我們只需要像使用普通的控件一樣來使用CounterView就可以了。比如在布局文件中加入如下代碼:

可以看到,這里我們將CounterView放入了一個(gè)RelativeLayout中,然后可以像使用普通控件來給CounterView指定各種屬性,比如通過layout_width和layout_height來指定CounterView的寬高,通過android:layout_centerInParent來指定它在布局里居中顯示。只不過需要注意,自定義的View在使用的時(shí)候一定要寫出完整的包名,不然系統(tǒng)將無法找到這個(gè)View。
總結(jié)
以上所述是小編給大家介紹的Android自定義View的實(shí)現(xiàn)方法實(shí)例詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android百度地圖定位后獲取周邊位置的實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Android百度地圖定位后獲取周邊位置的實(shí)現(xiàn)代碼,準(zhǔn)確獲取周邊地理位置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01
Android編程實(shí)現(xiàn)橫豎屏切換時(shí)不銷毀當(dāng)前activity和鎖定屏幕的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)橫豎屏切換時(shí)不銷毀當(dāng)前activity和鎖定屏幕的方法,涉及Android屬性設(shè)置及activity操作的相關(guān)技巧,需要的朋友可以參考下2015-11-11
Android 自定義閃屏頁廣告倒計(jì)時(shí)view效果
這篇文章主要介紹了Android 自定義閃屏頁廣告倒計(jì)時(shí)view效果,需要的朋友可以參考下2017-05-05
Android筆記之:App模塊化及工程擴(kuò)展的應(yīng)用
這篇文章是android開發(fā)人員的必備知識(shí),是我特別為大家整理和總結(jié)的,不求完美,但是有用2013-04-04
Android編程之ListView和EditText發(fā)布帖子隱藏軟鍵盤功能詳解
這篇文章主要介紹了Android編程之ListView和EditText發(fā)布帖子隱藏軟鍵盤功能,結(jié)合實(shí)例形式分析了Android控件調(diào)用、隱藏軟鍵盤的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-08-08

