《Android自定义控件入门到精通》文章索引 ☞ https://blog.csdn.net/Jhone_csdn/article/details/118146683
《Android自定义控件入门到精通》所有源码 ☞ https://gitee.com/zengjiangwen/Code
文章目录
Line
Line的绘制也有三个方法
drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
drawLines(float[] pts,Paint paint)
drawLines(float[] pts, int offset, int count, Paint paint)
首先我们要知道的是,两个点可以确定一条直线,所以在直线的绘制中,四个数值为一组
drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
//初始化画笔Paint
private void init() {
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setColor(Color.parseColor("#ff0000"));
mPaint.setStrokeWidth(10);
mPaint.setStrokeCap(Paint.Cap.ROUND);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawLine(10,10,50,50,mPaint);
}
drawLines(float[] pts, Paint paint)
@Override
protected void onDraw(Canvas canvas) {
float[] points = new float[]{10, 15, 100, 15, 100, 88, 300, 200};
canvas.drawLines(points,mPaint);
}
两点确定一条线段
drawLines(float[] pts, int offset, int count, Paint paint)
offset:跳过的数据个数,这些数据将不参与绘制过程
count:实际参与绘制的数据个数
@Override
protected void onDraw(Canvas canvas) {
float[] points = new float[]{10, 10, 20, 20, 30, 30, 40, 40, 80, 90, 100, 200};
canvas.drawLines(points, 1, 8, mPaint);
}
offset=1,跳过第一个数值
count=8,跳过第一个数值后,再数8个数值参与绘制
即参与绘制的数值为:[10, 10, 20, 20, 30, 30, 40, 40, 80, 90, 100, 200]