绘制颜色:drawColor
package com.zhoujian.retrofit.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class DrawColorView extends View {
public DrawColorView(Context context) {
super(context);
}
public DrawColorView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public DrawColorView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//绘制颜色
canvas.drawColor(Color.RED);
}
}
绘制圆:drawCircle
DrawCircleView.java
package com.zhoujian.retrofit.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class DrawCircleView extends View {
private Paint paint;
public DrawCircleView(Context context) {
super(context);
}
public DrawCircleView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public DrawCircleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 初始化画笔
*/
private void initPaint() {
paint = new Paint();
//设置画笔颜色
paint.setColor(Color.RED);
// 设置画的模式
// Paint.Style.FILL:填充模式
// Paint.Style.STROKE:画线模式
paint.setStyle(Paint.Style.FILL);
//设置抗锯齿
paint.setAntiAlias(true);
//设置画线宽度
paint.setStrokeWidth(5);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
initPaint();
//画圆,前2个参数,定义圆心位置,第三个参数:圆的半径,第四个参数:Paint
canvas.drawCircle(530, 500, 200, paint);
}
}
绘制矩形:drawRect
package com.zhoujian.retrofit.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class DrawRectView extends View {
private Paint paint;
public DrawRectView(Context context) {
super(context);
}
public DrawRectView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public DrawRectView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 初始化画笔
*/
private void initPaint() {
paint = new Paint();
//设置画笔颜色
paint.setColor(Color.RED);
// 设置画的模式
// Paint.Style.FILL:填充模式
// Paint.Style.STROKE:画线模式
paint.setStyle(Paint.Style.FILL);
//设置抗锯齿
paint.setAntiAlias(true);
//设置画线宽度
paint.setStrokeWidth(5);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
initPaint();
//参数解读:
//left:左边距离y轴的距离
//top:上边距离x轴的距离
//right:右边距离y轴的距离
//bottom:底边距离x轴的距离
//矩形的宽为:right-left
//矩形的高为:bottom-top
//绘制矩形
canvas.drawRect(300,300,800,500,paint);
}
}
绘制点:drawPoint
package com.zhoujian.retrofit.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class DrawPointView extends View {
private Paint paint;
public DrawPointView(Context context) {
super(context);
}
public DrawPointView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public DrawPointView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 初始化画笔
*/
private void initPaint() {
paint = new Paint();
//设置画笔颜色
paint.setColor(Color.RED);
// 设置画的模式
// Paint.Style.FILL:填充模式
// Paint.Style.STROKE:画线模式
paint.setStyle(Paint.Style.FILL);
//设置抗锯齿
paint.setAntiAlias(true);
//设置画线宽度
paint.setStrokeWidth(50);
//画圆点:Paint.Cap.ROUND
//画方点:Paint.Cap.BUTT、Paint.Cap.SQUARE
paint.setStrokeCap(Paint.Cap.ROUND);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
initPaint();
//圆点或者方点坐标
//x,y 圆点或者方点坐标 最后一个参数是Paint
//圆点或者方点大小可以通过setStrokeWidth来设置
canvas.drawPoint(550,500,paint);
}
}
绘制椭圆:drawOval
package com.zhoujian.retrofit.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class DrawOvalView extends View {
private Paint paint;
public DrawOvalView(Context context) {
super(context);
}
public DrawOvalView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public DrawOvalView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 初始化画笔
*/
private void initPaint() {
paint = new Paint();
//设置画笔颜色
paint.setColor(Color.RED);
// 设置画的模式
// Paint.Style.FILL:填充模式
// Paint.Style.STROKE:画线模式
paint.setStyle(Paint.Style.FILL);
//设置抗锯齿
paint.setAntiAlias(true);
//设置画线宽度
paint.setStrokeWidth(5);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
initPaint();
//参数解读:
//left:左边距离y轴的距离
//top:上边距离x轴的距离
//right:右边距离y轴的距离
//bottom:底边距离x轴的距离
//椭圆的宽为:right-left
//椭圆的高为:bottom-top
canvas.drawOval(300,800,800,1000,paint);
}
}
绘制线:drawLine
package com.zhoujian.retrofit.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class DrawLineView extends View {
private Paint paint;
public DrawLineView(Context context) {
super(context);
}
public DrawLineView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public DrawLineView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 初始化画笔
*/
private void initPaint() {
paint = new Paint();
//设置画笔颜色
paint.setColor(Color.RED);
// 设置画的模式
// Paint.Style.FILL:填充模式
// Paint.Style.STROKE:画线模式
paint.setStyle(Paint.Style.FILL);
//设置抗锯齿
paint.setAntiAlias(true);
//设置画线宽度
paint.setStrokeWidth(10);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
initPaint();
//startX、startY 是起始点为坐标
//stopX、stopY 是结束点的坐标
//最后一个参数是:Paint
//线的长度为:stopX-startX
canvas.drawLine(300,600,800,600,paint);
}
}
绘制圆角矩形:drawRoundRect
package com.zhoujian.retrofit.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class DrawRoundRectView extends View {
private Paint paint;
public DrawRoundRectView(Context context) {
super(context);
}
public DrawRoundRectView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public DrawRoundRectView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 初始化画笔
*/
private void initPaint() {
paint = new Paint();
//设置画笔颜色
paint.setColor(Color.RED);
// 设置画的模式
// Paint.Style.FILL:填充模式
// Paint.Style.STROKE:画线模式
paint.setStyle(Paint.Style.FILL);
//设置抗锯齿
paint.setAntiAlias(true);
//设置画线宽度
paint.setStrokeWidth(5);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
initPaint();
//参数解读:
//left:左边距离y轴的距离
//top:上边距离x轴的距离
//right:右边距离y轴的距离
//bottom:底边距离x轴的距离
//rx:圆角横向半径
//ry:圆角纵向半径
//圆角矩形的宽为:right-left
//圆角矩形的高为:bottom-top
//绘制圆角矩形
canvas.drawRoundRect(300,800,800,1000,30,30,paint);
}
}
绘制弧形或者扇形drawArc
package com.zhoujian.retrofit.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class DrawArcView extends View {
private Paint paint;
public DrawArcView(Context context) {
super(context);
}
public DrawArcView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public DrawArcView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 初始化画笔
*/
private void initPaint() {
paint = new Paint();
//设置画笔颜色
paint.setColor(Color.RED);
// 设置画的模式
// Paint.Style.FILL:填充模式
// Paint.Style.STROKE:画线模式
paint.setStyle(Paint.Style.FILL);
//设置抗锯齿
paint.setAntiAlias(true);
//设置画线宽度
paint.setStrokeWidth(5);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
initPaint();
//绘制弧形或者扇形
//参数解读
//设置填充模式
paint.setStyle(Paint.Style.FILL);
//绘制扇形
canvas.drawArc(240, 100, 800, 500, 300, 60, true, paint);
//绘制弧形 useCenter:false就是弧形 ture就是扇形
canvas.drawArc(240, 100, 800, 500, 20, 90, false, paint);
//设置画线模式
paint.setStyle(Paint.Style.STROKE);
//绘制弧形
canvas.drawArc(240, 100, 800, 500, 120, 170, false, paint);
}
}
绘制Path:drawPath
package com.zhoujian.retrofit.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class DrawPathView extends View {
private Paint paint;
public DrawPathView(Context context) {
super(context);
}
public DrawPathView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public DrawPathView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 初始化画笔
*/
private void initPaint() {
paint = new Paint();
//设置画笔颜色
paint.setColor(Color.RED);
// 设置画的模式
// Paint.Style.FILL:填充模式
// Paint.Style.STROKE:画线模式
paint.setStyle(Paint.Style.FILL);
//设置抗锯齿
paint.setAntiAlias(true);
//设置画线宽度
paint.setStrokeWidth(5);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
initPaint();
Path path = new Path();
path.addArc(300, 200, 500, 400, -225, 225);
path.arcTo(500, 200, 700, 400, -180, 225, false);
path.lineTo(500, 610);
canvas.drawPath(path,paint);
}
}