Android-CustomView Paint
概念
绘制出来的颜色,具体效果则由Paint确定。
|
|
前使用的模式一直为填充模式,实际上画笔有三种模式,如下:
- STROKE //描边
- FILL //填充
- FILL_AND_STROKE //描边加填充123456789101112131415Paint paint = new Paint();paint.setColor(Color.BLUE);paint.setStrokeWidth(40); //为了实验效果明显,特地设置描边宽度非常大// 描边paint.setStyle(Paint.Style.STROKE);canvas.drawCircle(200,200,100,paint);// 填充paint.setStyle(Paint.Style.FILL);canvas.drawCircle(200,500,100,paint);// 描边加填充paint.setStyle(Paint.Style.FILL_AND_STROKE);canvas.drawCircle(200, 800, 100, paint);
绘制的paint的相关方法
色彩 setColor setARGB setAlpha 设置颜色,透明度
大小 setTextSize 设置文本字体大小
字体 setTypeface 设置或清除字体样式
样式 setStyle 填充(FILL),描边(STROKE),填充加描边(FILL_AND_STROKE)
对齐 setTextAlign 左对齐(LEFT),居中对齐(CENTER),右对齐(RIGHT)
测量 measureText 测量文本大小(注意,请在设置完文本各项参数后调用)
|
|
设置Shader
Android 的绘制里使用 Shader ,并不直接用 Shader 这个类,而是用它的几个子类。具体来讲有 LinearGradient RadialGradient SweepGradient BitmapShader ComposeShader 这么几个:
|
|
ColorFilter
|
|
setStrokeWidth(float width)
设置线条的宽度 单位像素 默认是0
setStrokeCap(Paint.Cap cap)
设置线头的形状。线头形状有三种:BUTT 平头、ROUND 圆头、SQUARE 方头。默认为 BUTT。
setStrokeJoin(Paint.Join join)
设置拐角的形状。有三个值可以选择:MITER 尖角、 BEVEL 平角和 ROUND 圆角。默认为 MITER。
setPathEffect(PathEffect effect)
|
|
CornerPathEffect
把所有拐角变成圆角。1234PathEffect pathEffect = new CornerPathEffect(20);paint.setPathEffect(pathEffect);...canvas.drawPath(path, paint);DiscretePathEffect
把线条进行随机的偏离,让轮廓变得乱七八糟。乱七八糟的方式和程度由参数决定。1234PathEffect pathEffect = new DiscretePathEffect(20, 5);paint.setPathEffect(pathEffect);...canvas.drawPath(path, paint);DashPathEffect
使用虚线来绘制线条。1234PathEffect pathEffect = new DashPathEffect(new float[]{20, 10, 5, 10}, 0);paint.setPathEffect(pathEffect);...canvas.drawPath(path, paint);
setShadowLayer
setShadowLayer(float radius, float dx, float dy, int shadowColor)
|
|
reset()
重置 Paint 的所有属性为默认值。相当于重新 new 一个,不过性能当然高一些啦。