自定义View有着极大的灵活性,只要敢想总能画出来。既然是画,总是需要工具,那就是所熟悉的的画笔 - Paint。俗话说,工欲善其事必先利其器。接下来,将从Paint的一些列API来认识它。
构造函数
在官方API中,为我们提供了3个构造函数:
- Paint()
- Paint(int flags)
Paint(Paint paint)
val paintRed = Paint() paintRed.apply { color = resources.getColor(android.R.color.holo_red_A<sub>dst</sub>rk) // 绘制时可以实现抗锯齿 flags = Paint.ANTI_ALIAS_FLAG // 设置笔触:以路径结束,并不会超过它 strokeCap = Paint.Cap.BUTT // 画笔的样式:只绘画轮廓 style = Paint.Style.STROKE // 设置画笔宽度 strokeWidth = 36F } val paintBlue = Paint(Paint.ANTI_ALIAS_FLAG) paintBlue.apply { color = resources.getColor(android.R.color.holo_blue_A<sub>dst</sub>rk) strokeCap = Paint.Cap.BUTT strokeWidth = 36F } val paintRed_ = Paint(paintRed)
在上述示例代码中:
- paintRed由默认构造方法创建
paintBlue在创建时传递了Paint.ANTI_ALIAS_FLAG标志位。如果有需要可以同时传递多个标志位
val paintBlue = Paint(Paint.ANTI_ALIAS_FLAG or Paint.DEV_KERN_TEXT_FLAG)
- paintRed_是一个新的Paint,但是在创建时,使用了Paint的属性进行初始化。