Android自定义View,Paint和Canvas

自己学习笔记,仅供自己参考,如有不对欢迎指正

Paint 画笔()

主要用途:绘制的颜色和风格信息(圆的空心、实心、线条粗细、有没有阴影)
paint的API划分:颜色、效果、drawText()相关、初始化

一、颜色设置:

1.setShader()着色器

  • LinearGradient线性渐变
  • RadialGradient 辐射渐变
  • SweepGradient扫描渐变
  • BitmapShader使用bitmap像素进行文字或者图形的填充
  • ComposeShader混合着色器

2.颜色过滤

  • setColorFilter颜色过滤的意思,就是为绘制的内容设置一个统一的过滤策略

  • LightingColorFilter是用来模拟简单的光照效果的

  • PorterDuffColorFilter使用一个指定的颜色和一种指定的 PorterDuff.Mode 来与绘制对象进行合成

  • ColorMatrixColorFilter使用ColorMatrix 来对颜色进行处理,列如设置饱和度等

3.setXfermode

绘制内容与View中已有内容的混合计算方式,就是制定重叠区域

二、效果:

1.setAntiAlias (boolean aa)

设置抗锯齿

2.setStyle(Paint.Style style)

设置图形风格,线条、填充还是两者都用

3.设置线条形状

  • setStrokeWidth(float width)设置线条宽度
  • setStrokeCap(Paint.Cap cap)设置线头形状
  • setStrokeJoin(Paint.Join join)设置拐角形状
  • setStrokeMiter(float miter)对setStrokeJoin补充。默认情况下,大于这个角的尖角会被保留,而小于这个夹角的就会被「削成平头」

4.色彩优化

setFilterBitmap(boolean filter)设置是否使用双线性过滤来绘制 Bitmap 。开启后,可以防止模糊。

5.setPathEffect(PathEffect effect)

给图形的轮廓设置效果

  • CornerPathEffect将拐角设置成圆角
  • DiscretePathEffect把线条进行随机的偏离,让轮廓变得乱七八糟。乱七八糟的方式和程度由参数决定。
  • DashPathEffect使用虚线来绘制线条。
  • PathDashPathEffect用一个具体的path来绘制虚线
  • SumPathEffect组合效果,用多种PathEffect 分别对目标进行绘制,会有多条轮廓
  • ComposePathEffect组合效果,用多种PathEffect对目标进行绘制,只有一条轮廓

6.setShadowLayer

绘制阴影

7. setMaskFilter(MaskFilter maskfilter)

对整个页面进行过滤

  • BlurMaskFilter模糊效果的 MaskFilter
  • EmbossMaskFilter浮雕效果的 MaskFilter。

8.获取绘制的 Path

  • getFillPath(Path src, Path dst)获取的drawPath绘制内容的轮廓,包括线条宽度和设置的 PathEffect
  • getTextPath()文字绘制实则也是图形绘制,此方法获取的是绘制文字轮廓的path

三、drawText()相关

列如文字大小、间隔、效果(加粗、倾斜、下划线等)

四、初始化类

用来初始化paint对象

  • reset()重置 Paint 的所有属性为默认值。相当于重新 new 一个,不过性能当然高一些啦
  • set(Paint src)把 src 的所有属性全部复制过来。相当于调用 src 所有的 get 方法,然后调用这个 Paint 的对应的 set 方法来设置它们。
  • setFlags(int flags)批量设置flags,例如:
    paint.setFlags(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG);

二、Canvas 绘制

用来真正画一个view的工具
drawCircle() drawRect() drawPath() drawBitmap() drawText() ...

  • 绘制辅助
    列如绘制范围的裁切,以clip开头的方法
    clipPath
    clipRect

  • 4.绘制内容的几何变换
    例如放大缩小、平移、旋转等

  • 5.绘制顺序
    先绘制的内容会被后绘制的内容盖住。绘制前景、背景

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
米米米米米米米米修_的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容