欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android UI開(kāi)發(fā) View自繪控件 分享

 更新時(shí)間:2013年05月28日 10:19:00   作者:  
Android UI開(kāi)發(fā) View自繪控件 分享,需要的朋友可以參考一下

 很多時(shí)候想要設(shè)計(jì)漂亮的Android UI,使用Android自帶的控件無(wú)法滿足我們的需要就要考慮自繪控件,在Android界面顯示類View,可以通過(guò)繼承擴(kuò)展重寫相關(guān)方法來(lái)實(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開(kāi)發(fā)網(wǎng)就以一個(gè)實(shí)例來(lái)表示。

復(fù)制代碼 代碼如下:

  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句柄,可以直接通過(guò)我們前面講到的Canvas類進(jìn)行相關(guān)的操作,完整的例子,大家可以參考Android SDK中例子Snake貪食蛇游戲的實(shí)現(xiàn)。

  }

  }


  有關(guān)View類的更新,我們直接通過(guò)調(diào)用invalidate(int l,int r,int r,int b)來(lái)更新一個(gè)Rect矩形區(qū)域,或更新全部,同時(shí)在線程中我們使用需要調(diào)用postInvalidate來(lái)更新界面。

相關(guān)文章

最新評(píng)論