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

本文转自www.35java.com

更多相关文章

  1. [Java][Android][Process] 暴力的服务可以解决一切,暴力的方式执
  2. Android我还可以相信你多少系列文章三之通知栏
  3. Android(安卓)Native 绘图方法
  4. 使用GoAgent更新Android(安卓)SDK
  5. Android(安卓)开发者 for Flutter (1)Flutter和Android中的View对
  6. Android(安卓)doc 之应用程序基础
  7. Android(安卓)多线程之 Handler 基本使用
  8. Android核心模块及相关技术(自IT168)
  9. mk中的android:sharedUserId和LOCAL_CERTIFICATE作用

随机推荐

  1. Android实现搜索历史功能
  2. 解决eclipse中查看android工程代码出现an
  3. 【Android】上传代码至JCenter
  4. Kotlin学习笔记---持续更新中
  5. Android回顾/Intent的使用
  6. Android之Bundle类
  7. 使用Tensorflow部署手机端app之将TensorF
  8. 关于android生成debug和release版
  9. Android的页面管理控件ViewFlipper
  10. Android之app作为服务器解决跨域问题