Android自定义控件基础

来源:互联网 发布:苏州 矩阵光电 新三板 编辑:程序博客网 时间:2024/06/07 01:37

我觉得人应自强不息。
本文参考:http://blog.csdn.net/harvic880925/article/details/38875149

package com.example.customwidget;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.RectF;
import android.view.View;

public class MyView extends View{
Context mContext;
public MyView(Context context) {
super(context);
mContext=context;
}
//重写OnDraw方法,在每次重绘时自主实现绘图
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//设置画笔的属性
Paint paint = new Paint();
paint.setAntiAlias(true);//打开抗锯齿功能
paint.setColor(Color.BLACK);//设置画笔的颜色
paint.setStyle(Style.FILL);//设置填充样式
paint.setStrokeWidth(5);//设置画笔宽度
//半径
// paint.setShadowLayer(10, 15, 15, Color.GREEN);//设置阴影层
//设置画布背景颜色
canvas.drawRGB(255, 255, 255);
// //画圆
// canvas.drawCircle(190, 200, 150, paint);
//画直线
// canvas.drawLine(100, 100, 200, 200, paint);
//多条直线
// float[] pts={10,10,100,100,200,200,400,400};
// canvas.drawLines(pts, paint);
//点
// canvas.drawPoint(100, 100, paint);
//多个点
// float[] pts={10,10,100,100,200,200,400,400};
// canvas.drawPoints(pts, paint);
//矩形 左上右下
// canvas.drawRect(10, 10, 100, 100, paint);
//圆角矩形
// RectF rectF= new RectF(100,10,300,100);
// canvas.drawRoundRect(rectF, 20,10 , paint);
//椭圆
// paint.setStyle(Style.STROKE);//更改样式为描边
// RectF rect= new RectF(100,10,300,100);
// canvas.drawRect(rect, paint);//画矩形
// paint.setColor(Color.GREEN);//更改画笔颜色
// canvas.drawOval(rect, paint);
//弧
paint.setStyle(Style.STROKE);//更改样式为描边
// paint.setColor(Color.RED);//更改画笔颜色
RectF rect = new RectF(100,10,300,200);
// canvas.drawRect(rect, paint);
paint.setColor(Color.RED);//更改画笔颜色
// float startAngle:弧开始的角度,以X轴正方向为0度
// float sweepAngle:弧持续的角度
// boolean useCenter:是否有弧的两边,True,还两边,False,只有一条弧
//补充:false和true的区别在于 图形是否封闭
//此时有阴影,隐藏一些代码即可
//设置填充
paint.setStyle(Style.FILL);
canvas.drawArc(rect, 0, 90, true, paint);
}
}

activity里面的重要代码

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout root=(RelativeLayout) findViewById(R.id.root);
root.addView(new MyView(MainActivity.this));
}

最后附一张最终效果图:
这里写图片描述

0 0
原创粉丝点击