Android 自定义View(学习 整理基础用法)

学习资料

始于 onDraw(Canvas canvas)

1、canvas.drawXxx() 直接绘制所需图形

canvas.drawColor:当前view绘制颜色(类似背景色)

canvas.drawRect : 绘制矩形

canvas.drawCircle:绘制圆形

canvas.drawPoint:绘制点

canvas.drawOval:绘制椭圆

canvas.drawLine:绘制线

canvas.drawRoundRect:绘制圆角矩形

canvas.drawArc:绘制弧形或扇形

canvas.drawPath:绘制复杂(组合)的图形

path.addXxx 与canvas.drawXxx 实现相同的图形,并且可以组合使用,通过canvas.drawPath 绘制出需要的图形。

drawBitmap:绘制指定图片bitmap

drawText:绘制指定文本

2.Paint 基础

setColor/setARGB :设置画笔颜色

setShader:

LinearGradient :线性渐变线性渐变色

RadialGradient :辐射渐变

SweepGradient: 扫描渐变

BitmapShader:使用图片

ComposeShader :混合着色器

setColorFilter:颜色过滤

LightingColorFilter/PorterDuffColorFilter/ColorMatrixColorFilter

setXfermoder:设置组合图交叉模式(需要使用saveLayer)

setAntiAlias:设置抗锯齿

setStyle:设置图形线条模式

setStrokeWidth:设置线条宽度

setStrokeCap:设置线头形状

setStrokeJoin:设置拐角形状

setStrokeMiter:设置拐角延长线长度

setDither:设置图像抖动

setFilterBitmap:设置是否使用双线性过滤绘制

setPathEffect:设置图形轮廓效果(单一效果的 CornerPathEffectDiscretePathEffect DashPathEffect PathDashPathEffect ,和组合效果的 SumPathEffect ComposePathEffect)

setShadowLayer:绘制内容下面加一层阴影

setMaskFilter(BlurMaskFilter/EmbossMaskFilter):(与setShadowLayer相反)在绘制层上面加一层效果

DrawText文字绘制

canvas.drawText:绘制文字内容(x,y不是左上角,还是左下角,确切的说y的值是基准线)

canvas.drawTextRun():中国人用不到,自行研究。

canvas.drawTextOnPath:沿着path路径绘制文字

StaticLayout:并不是canvas的方法,绘制文字自动换行或者有“\n”换行符时,能自动换行

Paint中绘制文字的辅助方法:

setTextSize:设置字体大小

setTypeface:字体

setFakeBoldText:设置伪粗体

setStrikeThruText:是否添加删除线

setUnderlineText:是否添加下划线

setTextSkewX:设置文字横向错切角度(文字倾斜度)

setTextScaleX:文字横向缩放

setLetterSpacing:设置字符间距,默认为0

setFontFeatureSettings:用 CSS 的 font-feature-settings 的方式来设置文字

setTextAlign:设置文字的对齐方式。一共有三个值:LEFT CETNER 和 RIGHT。默认值为 LEFT

setHinting:是否启用字体的 hinting (字体微调)

setElegantTextHeight:中国人用不到,自行研究。

setSubpixelText:是否开启次像素级抗锯齿

setLinearText:不懂,自行研究

绘制辅助 -> clipXXX 和 Matrix

clipRect:设置裁剪矩形区域。

clipPath:与clipRect一样,只是参数是path,裁剪的图形有path决定

几何变换

canvas.translate:平移

canvas.rotate:旋转

canvas.scale:缩放

canvas.skew:错切

Matrix 可以实现自定义变换

Camera 实现三维变换

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容