简单的自定义view制作
2017-07-26 22:19
162 查看
Android的所有视图控件都是View的子类,制作自定义视图则一样需要继承自这个类。View本身是空白一片的,需要通过重写onDraw(Canvas)方法来画制。
继承自View后,就是一个可以用的视图了,那么就必须具备视图能被创建和引用的基本功能吧。视图可以在代码里被创建和引用,也可以在布局文件里被创建和引用,所以2个不同的构造函数是少不了的。
public ExampleView(Context context){
this(context,null);
}
public ExamplieView(Context context,AttributeSet attrs){
super(context,attrs); //AttributeSet是在创建xml时要指定的属性集
}
画制自定义View要使用到2个工具类,Canvas和Paint,类似于纸和笔一样,只是不同于真实世界,最后执行动作是让纸来做(调用Canvas里的方法)。Canvas的一些方法,比如drawPaint,drawRect等,Paint的配置方法,比如setColor等,具体的可以查询相关文档。
当视图被启动时,会触发一次onDraw(Canvas canvas)方法,画制里面定义的视图,当我们需要在经过一些操作后,改变视图,则调用invalidate()方法让画布失效,然后重新调用onDraw方法。
*对于任何一个继承自View的视图控件,可以重写里面的一个方法来监听触摸事件,onTouchEvent(MotionEvent),当视图被触摸时,这个方法就会被调用一次,对于用户不同的触摸方式,可以在里面监听到就做出相应的操作。
当用户点击视图时就会产生一个MotionEvent给onTouchEvent,可以通过MotionEvent的实例.getAction()获得具体的触摸事件。触摸事件里比较常用的有3个,点击ACTION_DOWN,拖动ACTION_MOVE,释放ACTION_UP。
其中,对于用户点击的地方,可以用PoinfF对象来记录那个位置。当用户产生触摸事件时,会产生一个MotionEvent类实例,可以用这个实例产生时的坐标来创建PointF对象,也就是用motionEvent.getX()/getY()来创建PointF实例。
继承自View后,就是一个可以用的视图了,那么就必须具备视图能被创建和引用的基本功能吧。视图可以在代码里被创建和引用,也可以在布局文件里被创建和引用,所以2个不同的构造函数是少不了的。
public ExampleView(Context context){
this(context,null);
}
public ExamplieView(Context context,AttributeSet attrs){
super(context,attrs); //AttributeSet是在创建xml时要指定的属性集
}
画制自定义View要使用到2个工具类,Canvas和Paint,类似于纸和笔一样,只是不同于真实世界,最后执行动作是让纸来做(调用Canvas里的方法)。Canvas的一些方法,比如drawPaint,drawRect等,Paint的配置方法,比如setColor等,具体的可以查询相关文档。
当视图被启动时,会触发一次onDraw(Canvas canvas)方法,画制里面定义的视图,当我们需要在经过一些操作后,改变视图,则调用invalidate()方法让画布失效,然后重新调用onDraw方法。
*对于任何一个继承自View的视图控件,可以重写里面的一个方法来监听触摸事件,onTouchEvent(MotionEvent),当视图被触摸时,这个方法就会被调用一次,对于用户不同的触摸方式,可以在里面监听到就做出相应的操作。
当用户点击视图时就会产生一个MotionEvent给onTouchEvent,可以通过MotionEvent的实例.getAction()获得具体的触摸事件。触摸事件里比较常用的有3个,点击ACTION_DOWN,拖动ACTION_MOVE,释放ACTION_UP。
其中,对于用户点击的地方,可以用PoinfF对象来记录那个位置。当用户产生触摸事件时,会产生一个MotionEvent类实例,可以用这个实例产生时的坐标来创建PointF对象,也就是用motionEvent.getX()/getY()来创建PointF实例。
相关文章推荐
- 圆形自定义ImageView的简单制作
- 自定义TextView简单几步制作一个展示消息的滚动条
- 关于简单自定义view的View的理解(制作上面是图片下面是文字的控件)
- 支付宝芝麻信用页面自定义View的简单制作(续)
- (安卓) 自定义View 绘画圆(包括简单的接口回调)
- 简单的自定义view
- Android简单自定义View——获取图片颜色的ImageView
- 史上最简单的自定义UITabelView编辑状态的删除按钮
- CLR自定义.NET控件制作(1)——制作简单的自定义控件
- 简单自定义View及触摸监听
- 安卓自定义View之贝塞尔曲线简单使用
- 自定义 View 初探,一个简单的验证码View (一)
- 简单自定义View画圆与矩形
- 随记11——我的简单的自定义View之圆形进度条和长形进度条
- Android学习之路--简单的ViewPager(二 自定义ViewPager)
- 自定义view简单实现
- 自定义简单的ViewPagerIndicator控件
- Android自定义简单的View
- 一个简单的自定义View,仿圆形进度条
- 简单谈谈自定义View中的Mesure