一、Paint画笔
新建对象
Paint linePaint=new Paint();
- 设置样式(填充或线条)
linePaint.setStyle(Paint.Style.FILL_AND_STROKE);
- 设置颜色
linePaint.setColor(Color.RED);
- 绘制线条宽度
linePaint.setStrokeWidth(4);
- 设置线条链接处样式
linePaint.setStrokeJoin(Paint.Join.ROUND);
- 设置线头模式
linePaint.setStrokeCap(Paint.Cap.ROUND);
- 开启抗锯齿功能
linePaint.setAntiAlias(true);
- 绘制虚线
PathEffect effects = new DashPathEffect(new float[]{5, 10}, 0);
linePaint.setPathEffect(effects);
- 绘制渐变带阴影图形
int[] mColors = {Color.parseColor("#FF9800"),Color.parseColor("#FFCE85"),Color.parseColor("#FFEBCF")};
LinearGradient linearGradient=new LinearGradient(50, 0, 50, heightSize, mColors, null, Shader.TileMode.MIRROR);
linePaint.setShader(linearGradient);
二、Canvas画布
- 画线
canvas.drawLine(startX,startY,endX, endY,linePaint);
- 画方
canvas.drawRect(left,top,right,bottom,linePaint);
- 画圆
canvas.drawCircle(cX,cY,redius,linePaint);
- 绘制扇形
canvas.drawArc(left,top,right,bottom,startAngle,weepAngle,useCenter,Paint paint);
三、附
- 求旋转角度值对应的点坐标(sin与cos求值)
float lineStartX = CENTER_X + RADIUS * (float) Math.cos(lineAngle / 180 * Math.PI);
float lineStartY = CENTER_Y + RADIUS * (float) Math.sin(lineAngle / 180 * Math.PI);
float lineEndX = CENTER_X + (RADIUS + 20) * (float) Math.cos(lineAngle / 180 * Math.PI);
float lineEndY = CENTER_Y + (RADIUS + 20) * (float) Math.sin(lineAngle / 180 * Math.PI);
未完待续