欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android UI开发 View自绘控件 分享

程序员文章站 2024-02-10 14:59:52
 很多时候想要设计漂亮的android ui,使用android自带的控件无法满足我们的需要就要考虑自绘控件,在android界面显示类view,可以通过继承扩展重写相关方...

 很多时候想要设计漂亮的android ui,使用android自带的控件无法满足我们的需要就要考虑自绘控件,在android界面显示类view,可以通过继承扩展重写相关方法来实现我们的图形绘制。

  首先我们需要了解下view类的底层实现,在sdk中我们可以看到view直接继承于java的基类object,实现了图形绘制和按键事件 drawable.callback keyevent.callback的相关方法,我们自绘时主要实现其内部的ondraw方法,相关的界面计算可以重写onmeasure方法,对于相关的按键可以重载onkeydown、onkeyup以及ontouchevent等,下面android开发网就以一个实例来表示。

复制代码 代码如下:

  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);

  //这里是本类的构造,相关初始化可以在这里添加代码

  }

  @override

  protectd void ondraw(canvas canvas)

  {

  super(canvas);

  //绘图的关键,可以看到已经包含了一个canvas句柄,可以直接通过我们前面讲到的canvas类进行相关的操作,完整的例子,大家可以参考android sdk中例子snake贪食蛇游戏的实现。

  }

  }


  有关view类的更新,我们直接通过调用invalidate(int l,int r,int r,int b)来更新一个rect矩形区域,或更新全部,同时在线程中我们使用需要调用postinvalidate来更新界面。