android canvas 简书,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);

d95dc59bf1d3

常用

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路径里赋值内容

d95dc59bf1d3

所有方法里面都有一个共同的参数Direction :

d95dc59bf1d3

Direction

path关闭和不关闭的区别如图

感谢分享

https://juejin.im/entry/57185e53128fe10060024d59

d95dc59bf1d3

PathMeasure

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

d95dc59bf1d3

d95dc59bf1d3

Canvas

感谢分享

https://juejin.im/entry/588eea258d6d81005814678e

Canvas我们可以称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础,非常强大。

d95dc59bf1d3

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

d95dc59bf1d3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值