很多时候想要设计漂亮的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来更新界面。

更多相关文章

  1. android:GLSurfaceView绘制bitmap图片及glViewport调整的效果
  2. android 请求数据有值,赋值时报错:空指针
  3. android单元测试AndroidTestCase
  4. 重温Android四大组件(一)—Activity的生命周期
  5. Android中保存数据常用的方法
  6. Android共享元素
  7. Android实现照片选择显示-从相册选择或拍照选择
  8. 3G应用开发之Android(安卓)传智播客 基础知识总结
  9. 【Android】Android(安卓)线程&进程模型

随机推荐

  1. Android(安卓)UI系列-----RelativeLayout
  2. Android(安卓)SDK安装时出错“android Fa
  3. Android中的drawable state的各种状态
  4. Android(安卓)资源文件中@、@android:typ
  5. android Theme启动APP闪屏处理
  6. Android(安卓)基本概念
  7. android:layout_gravity和android:gravit
  8. android app 与android wear 通过Message
  9. android跑马灯有时候不跑
  10. ImageView的android:maxHeight,android:mi