很多时候想要设计漂亮的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(安卓)studio 天朝下 从下载到环境配置
  2. Android我还可以相信你多少系列文章三之通知栏
  3. Android(安卓)Accessibility(辅助功能) 安全相关问题,android辅助
  4. Android(安卓)Native 绘图方法
  5. Android学习笔记之源码下载打包
  6. Android我还可以相信你多少系列文章一之推送
  7. android UI更新问题 Thread和Looper以及Handler和Message详解 An
  8. Android(安卓)Studio检测不到新版本问题解决
  9. 工(程师)欲善其事,必先利其(编译)器——《Android(安卓)Studio实战—

随机推荐

  1. 评论:Android的升级策略
  2. Android 网络框架之Retrofit2使用详解及
  3. 谷歌之惑:辉煌的Android和尴尬的Nexus On
  4. 李开复评百度移动OS:基于Android 成功难度
  5. Android消息机制-深入理解消息队列的工作
  6. Android通讯录管理(获取联系人、通话记录
  7. Android获取手机中外置内存卡、内置内存
  8. Android中的广播(BroadCast)详细介绍
  9. 史上最全:Android开发者必知的开发资源 (图
  10. [置顶] android listview仿iphone弹簧特