关于Paint的一些想法

### Paint API大致可以分4类
* 颜色
* 效果
* drawText()相关
* 初始化


## 1.颜色
1.直接设置颜色
* setColor(int color)// setColor()对应的get方法是getColor()


2.setARGB(int a,int r,int g,int b)


3.setShader(Shader shader)
* LinearGradient 线性渐变
> TileMode CLAMP/MIRROR(镜像模式)/REPEAT(重复模式)
* RadialGradient 辐射渐变
* SweepGradient 扫描渐变
* BitmapShader 图片操作
* ComposeShader 混合着色器


4.setColorFilter(ColorFilter color) 过滤


* LightingColorFilter 用来模拟简单的光照效果
* PorterDuffColorFilter
* ColorMatrixColorFilter 矩阵


5.setXfermode(Xfermode xfermode) 
> Xfermode 指的是你要绘制的内容和 Canvas 的目标位置的内容应该怎样结合计算出最终的颜色。但通俗地说,其实就是要你以绘制的内容作为源图像,以 View 中已有的内容作为目标图像,选取一个  PorterDuff.Mode 作为绘制内容的颜色处理方案。


## 2.效果
1.setAntiAlias(boolean b) 抗锯齿
* 初始化时 Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);  


2.setStyle(Paint.Style style) //填充 画线 填充且画线


3.线条形状 setStrokeWidth(float width)


4.setStrokeCap(Paint.Cap cap) 设置线头的形状
* 线头形状有三种:BUTT平头 ROUND圆头 SQUARE 方头


5.setStrokeJoin(Paint.Join join) 设置拐角形状
* MITER 尖角、 BEVEL 平角和 ROUND 圆角。默认为 MITER。


6.setStrokeMiter(float miter)
* 这个方法是对于 setStrokeJoin() 的一个补充,它用于设置 MITER 型拐角的延长线的最大值。所谓「延长线的最大值」


7.色彩优化
* setDither(boolean dither) 设置图像的抖动
* setFilterBitmap(boolean filter) 设置过滤


8.setPathEffect(PathEffect effect)
> 使用 PathEffect 来给图形的轮廓设置效果。对 Canvas 所有的图形绘制有效,也就是 drawLine() drawCircle() drawPath() 这些方法


9.CornerPathEffect // 把所有拐角变成圆角。


10.DiscretePathEffect
> DiscretePathEffect 具体的做法是,把绘制改为使用定长的线段来拼接,并且在拼接的时候对路径进行随机偏离。它的构造方法 DiscretePathEffect(float segmentLength, float deviation) 的两个参数中,  segmentLength 是用来拼接的每个线段的长度, deviation 是偏离量。这两个值设置得不一样,显示效果也会不一样


* 把线条进行随机的偏离,让轮廓变得乱七八糟。乱七八糟的方式和程度由参数决定。


11.DashPathEffect //使用虚线来绘制线条。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值