自定义view构造方法

来源:互联网 发布:深圳软件外包公司 编辑:程序博客网 时间:2024/04/30 21:46
一:自定义view四个步骤
1. 创建类继承View
2. 4个构造方法+4个基本方法
3.  在onDraw进行需求绘制
4. 自定义属性: attrs文件   <attr name=" " ,  format=" ">
5. 在创建的类中  取值+初始化属性值    
自定义View(画圆)

一:自定义的四种方法:
onMeasure (测量控件大小)
onDraw 利用哼哈二将(Canvas 和Paint) (绘制)
onLayout (确定控件显示显示位置M )
onTouchEvent (监听)

二: 画布的方法与属性
canvas.drawText("This is a onDraw", 0, 30, paint); //设置字体
canvas.drawLine(0, 60, 200, 60, paint); // 直线
canvas.drawRect(0, 90, 200, 200, paint); //矩形 左 上 右 下
canvas.drawBitmap(bitmap, 50, 250, paint); //位图
canvas.drawCircle() //画图
invalidate(); //更新视图
recycle(); //回收
setAntiAlias(true) //设置为抗锯齿
setARGB() 设置颜色
context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyView, defStyleAttr, 0); // 获取自定义View属性对象

画笔样式分三种:1 Paint.Style.STROKE:描边
2 Paint.Style.FILL_AND_STROKE:描边并填充
3 Paint.Style.FILL 填充
描边的粗细:setStrokeWidth(); 单位px
当setStrokeWidth(0)的时候描边宽度并不是0而是只占一个像素

三:View的生命周期
1.onFinishInflate() 当View中所有的子控件均被映射成xml后触发
2.onMeasure( int , int ) 确定所有子元素的大小
3.onLayout( boolean , int , int , int , int ) 当View分配所有的子元素的大小和位置时触发
4.onSizeChanged( int , int , int , int ) 当view的大小发生变化时触发
5.onDraw(Canvas) view渲染内容的细节
6.onKeyDown( int , KeyEvent) 有按键按下后触发
7.onKeyUp( int , KeyEvent) 有按键按下后弹起时触发
8.onTrackballEvent(MotionEvent) 轨迹球事件
9.onTouchEvent(MotionEvent) 触屏事件
10.onFocusChanged( boolean , int , Rect) 当View获取或失去焦点时触发
11.onWindowFocusChanged( boolean ) 当窗口包含的view获取或失去焦点时触发
12.onAttachedToWindow() 当view被附着到一个窗口时触发
13.onDetachedFromWindow() 当view离开附着的窗口时触发,Android123提示该方法和 onAttachedToWindow() 是相反的。
14.onWindowVisibilityChanged( int ) 当窗口中包含的可见的view发生变化时触发


原创粉丝点击