//创建一个类继承View
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View {
private Paint paint;
private int cx;
private int cy;
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// 初始化画笔
initView();
}
private void initView() {
// 得到画笔
paint = new Paint();
// 设置画笔属性
paint.setAlpha(255);// 透明度
paint.setStyle(Style.STROKE);// //设置画笔为空心
paint.setStrokeWidth(2);// 画笔线宽
paint.setColor(Color.RED);// 画笔颜色
paint.setAntiAlias(true);// /抗锯齿
}
@Override
// 测量
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// 从新设置当前view的大小
setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
}
@Override
// 布局
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
if (changed) {
cx = getWidth() / 2;
cy = getHeight() / 2;
}
}
@Override
// 绘制
protected void onDraw(Canvas canvas) {
for (int i = 0; i < getWidth(); i = i + 20) {
// 画直线.
// 直线的x起始点,y起始点y终点,y终点//横线
canvas.drawLine(0, i, getWidth(), i, paint);
// 竖线
canvas.drawLine(i, 0, i, getHeight(), paint);
}
for (int i = 0; i < getWidth(); i = i + 20) {
// 画点
paint.setColor(Color.GREEN);
paint.setStrokeWidth(10);
canvas.drawPoint(i, i, paint);
}
// 画圆
// X坐标
// y坐标
// 半径
// 画笔
paint.setColor(Color.BLUE);
paint.setStrokeWidth(20);
canvas.drawCircle(cx, cy, 60, paint);
}
}
//布局文件中控件是类的全路径
<pre name="code" class="java"> <com.example.myview.MyView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
自定义View简单示例
最新推荐文章于 2021-02-19 21:59:43 发布