Android UI開發(fā) View自繪控件 分享
很多時(shí)候想要設(shè)計(jì)漂亮的Android UI,使用Android自帶的控件無法滿足我們的需要就要考慮自繪控件,在Android界面顯示類View,可以通過繼承擴(kuò)展重寫相關(guān)方法來實(shí)現(xiàn)我們的圖形繪制。
首先我們需要了解下View類的底層實(shí)現(xiàn),在SDK中我們可以看到View直接繼承于Java的基類Object,實(shí)現(xiàn)了圖形繪制和按鍵事件 Drawable.Callback KeyEvent.Callback的相關(guān)方法,我們自繪時(shí)主要實(shí)現(xiàn)其內(nèi)部的onDraw方法,相關(guān)的界面計(jì)算可以重寫onMeasure方法,對(duì)于相關(guān)的按鍵可以重載onKeyDown、onKeyUp以及onTouchEvent等,下面android開發(fā)網(wǎng)就以一個(gè)實(shí)例來表示。
public class cwjView extendsView
{
public cwjView(Context context)
{
this(context,null);
}
public cwjView(Context context,AttributeSet attrs)
{
this(context,attrs,0);
}
public cwjView(Context context,AttributeSet attrs,int defStyle)
{
super(context,attrs,defStyle);
//這里是本類的構(gòu)造,相關(guān)初始化可以在這里添加代碼
}
@Override
protectd void onDraw(Canvas canvas)
{
super(canvas);
//繪圖的關(guān)鍵,可以看到已經(jīng)包含了一個(gè)canvas句柄,可以直接通過我們前面講到的Canvas類進(jìn)行相關(guān)的操作,完整的例子,大家可以參考Android SDK中例子Snake貪食蛇游戲的實(shí)現(xiàn)。
}
}
有關(guān)View類的更新,我們直接通過調(diào)用invalidate(int l,int r,int r,int b)來更新一個(gè)Rect矩形區(qū)域,或更新全部,同時(shí)在線程中我們使用需要調(diào)用postInvalidate來更新界面。
相關(guān)文章
Android自定義ImageView實(shí)現(xiàn)點(diǎn)擊兩張圖片切換效果
這篇文章主要為大家詳細(xì)介紹了Android自定義ImageView實(shí)現(xiàn)點(diǎn)擊兩張圖片切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Android調(diào)用系統(tǒng)圖片裁剪限定尺寸及7.0照相問題的解決方法
這篇文章主要介紹了Android調(diào)用系統(tǒng)圖片裁剪限定尺寸,及7.0照相問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Android 系統(tǒng)net和wap接入點(diǎn)的區(qū)別
這篇文章主要介紹了Android 系統(tǒng)net和wap接入點(diǎn)的區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-09-09
Android UI設(shè)計(jì)系列之HTML標(biāo)簽實(shí)現(xiàn)TextView設(shè)置中文字體加粗效果(6)
這篇文章主要介紹了Android UI設(shè)計(jì)系列之使用HTML標(biāo)簽,實(shí)現(xiàn)在TextView中對(duì)中文字體加粗的效果,具有一定的實(shí)用性和參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
Android沉浸式狀態(tài)欄微技巧(帶你真正理解沉浸式模式)
因?yàn)锳ndroid官方從來沒有給出過沉浸式狀態(tài)欄這樣的命名,只有沉浸式模式(Immersive Mode)這種說法.下面通過本文給大家介紹Android沉浸式狀態(tài)欄微技巧,需要的朋友參考下2016-12-12
Android自定義ViewGroup實(shí)現(xiàn)帶箭頭的圓角矩形菜單
這篇文章主要為大家詳細(xì)介紹了Android自定義ViewGroup帶箭頭的圓角矩形菜單實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07
Android 中ScrollView與ListView沖突問題的解決辦法
這篇文章主要介紹了Android 中ScrollView與ListView沖突問題的解決辦法的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握解決問題的辦法,需要的朋友可以參考下2017-10-10

