android自定义View三剑客paint,Canvas,path

这篇主要是API,方便自己查阅。

paint

先上api,感谢分享
https://blog.csdn.net/shell812/article/details/49781397?ref=myread
常用API有
//重置
void reset();
//将另外一个画笔的属性赋值过来
void set(Paint src);
//设置可兼容的缩放
void setCompatibilityScaling(float factor);
//设置模式
void setFlags(int flags);
;//设置画笔隐藏模式
void setHinting(int mode)
//是否抗锯齿
void setAntiAlias(boolean aa);
//设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰
void setDither(boolean dither);
//设置线性文本
void setLinearText(boolean linearText);
//设置该项为true,将有助于文本在LCD屏幕上的显示效果
void setSubpixelText(boolean subpixelText);
//设置下划线
void setUnderlineText(boolean underlineText);
//设置带有删除线的效果
void setStrikeThruText(boolean strikeThruText);
//设置伪粗体文本,设置在小字体上效果会非常差
void setFakeBoldText(boolean fakeBoldText);
//如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作
//加快显示速度,本设置项依赖于dither和xfermode的设置
void setFilterBitmap(boolean filter);
//设置画笔风格,空心或者实心 FILL,FILL_OR_STROKE,或STROKE
//Paint.Style.STROKE 表示当前只绘制图形的轮廓,而Paint.Style.FILL表示填充图形。
void setStyle(Style style);
//设置颜色值
void setColor(int color);
//设置透明图0~255,要在setColor后面设置才生效
void setAlpha(int a);
//设置RGB及透明度
void setARGB(int a, int r, int g, int b);
//当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度
void setStrokeWidth(float width);
void setStrokeMiter(float miter);
//当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷末端的图形样式
//如圆形样式Cap.ROUND,或方形样式Cap.SQUARE
void setStrokeCap(Cap cap);
//设置绘制时各图形的结合方式,如平滑效果等
void setStrokeJoin(Join join);
//设置图像效果,使用Shader可以绘制出各种渐变效果
Shader setShader(Shader shader);
//设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果
ColorFilter setColorFilter(ColorFilter filter);
//设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果
Xfermode setXfermode(Xfermode xfermode);
//设置绘制路径的效果,如点画线等
PathEffect setPathEffect(PathEffect effect);
//设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等
MaskFilter setMaskFilter(MaskFilter maskfilter);
//设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等
Typeface setTypeface(Typeface typeface);
//设置光栅化
Rasterizer setRasterizer(Rasterizer rasterizer);
//在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色
//注意:在Android4.0以上默认开启硬件加速,有些图形的阴影无法显示。关闭View的硬件加速 view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
void setShadowLayer(float radius, float dx, float dy, int color);
//设置文本对齐
void setTextAlign(Align align);
//设置字体大小
void setTextSize(float textSize);
//设置文本缩放倍数,1.0f为原始
void setTextScaleX(float scaleX);
//设置斜体文字,skewX为倾斜弧度
void setTextSkewX(float skewX);

android自定义View三剑客paint,Canvas,path_第1张图片
常用

Path

Path类指的是由直线或者二次曲线或者三次曲线组成的几何路径。他可以通过canvas.drawPath(path, paint)去画出这个几何路径,或者这个几何路径的轮廓(这个要取决对应Paint类的Style),同时还可以用于裁剪或者在Paht路径上面绘制文字。
感谢分享
https://www.jianshu.com/p/9ad3aaae0c63
如何绘制Path:
通过设置Paint的Style(FILL、STROKE、FILL_AND_STROKE),然后调用canvas.drawPath(path, paint);Path还可以用于剪切或者在路径上绘制文本(canvas.drawTextOnPath())。
构造函数
Path() // 空的构造函数
Path(Path src) //创建一个新的路径,并且从src路径里赋值内容

android自定义View三剑客paint,Canvas,path_第2张图片

所有方法里面都有一个共同的参数Direction :
android自定义View三剑客paint,Canvas,path_第3张图片
Direction

path关闭和不关闭的区别如图
感谢分享
https://juejin.im/entry/57185e53128fe10060024d59
android自定义View三剑客paint,Canvas,path_第4张图片

PathMeasure

PathMeasure是一个用来测量Path的类,主要有以下方法:


android自定义View三剑客paint,Canvas,path_第5张图片

android自定义View三剑客paint,Canvas,path_第6张图片

Canvas

感谢分享
https://juejin.im/entry/588eea258d6d81005814678e
Canvas我们可以称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础,非常强大。

android自定义View三剑客paint,Canvas,path_第7张图片


这篇也只能写点基本APi大家可以去试试。


你可能感兴趣的:(android自定义View三剑客paint,Canvas,path)