View是一切UI的超类,若是系统自带的构造控件不克不及知足我们的需求,那末我们能够担当View类来写自身的UI。
担当View类后还需求重写OnDraw方式,上面经由过程一个实例来体会:
步伐:新建一个Activity
担当View类
完成onDraw方式
在onDraw方式中设置画笔和画布控件、
在xml文件中插手树立的视图
图象:XML文件:
RelativeLayout xmlns:android= //schemas.android.com/apk/res/android xmlns:tools= //schemas.android.com/tools android:layout_width= match_parent android:layout_height= match_parent com.example.itab.tab android:layout_width= fill_parent android:layout_height= 49dp android:layout_alignParentBottom= true / /RelativeLayout
Java文件:
package com.example.itab;publicclass tab extends View { private Paint mp; //声明一个画笔控件public tab(Context context, AttributeSet attrs) { super(context, attrs); } @Override protectedvoid onDraw(Canvas canvas) { mp = new Paint(); // 新建画笔 mp.setStyle(Paint.Style.FILL); // 设置画笔为实心 Rect r = new Rect(); // 新建一个矩形框this.getDrawingRect(r); // 填充矩形的各个位置属性 canvas.drawColor(0XFF000000); // 设置画布颜色 mp.setColor(0X00FF00); // 设置画笔颜色/* 绘制一条直线,参数依次为:起头的横坐标,起头的纵坐标,竣事的横坐标,竣事的纵坐标,坐标由矩形来决议,用mp画笔来绘制 */ canvas.drawLine(r.left, r.centerY(), r.right, r.centerY(), mp); super.onDraw(canvas); }}