一、前言
在上一节《Canvas绘图基础详解》我们说到Canvas绘图有三个基本要素:Canvas、绘图坐标系以及Paint,上一节我们详细介绍了Canvas和绘图坐标系的使用。这一节我们就来详细讲讲Paint的一些使用方式。Paint就是画笔的意思,用于设置绘制风格,如:线宽(笔触粗细)、颜色、透明度和填充风格等等。
深自缄默,如云漂泊
在上一节《Canvas绘图基础详解》我们说到Canvas绘图有三个基本要素:Canvas、绘图坐标系以及Paint,上一节我们详细介绍了Canvas和绘图坐标系的使用。这一节我们就来详细讲讲Paint的一些使用方式。Paint就是画笔的意思,用于设置绘制风格,如:线宽(笔触粗细)、颜色、透明度和填充风格等等。
Android中,如果我们想绘制复杂的自定义View或游戏,我们就需要熟悉绘图API。Android通过Canvas类暴露了很多drawXXX方法,我们可以通过这些方法绘制各种各样的图形。Canvas绘图有三个基本要素:Canvas、绘图坐标系以及Paint。Canvas是画布,我们通过Canvas的各种drawXXX方法将图形绘制到Canvas上面,在drawXXX方法中我们需要传入要绘制的图形的坐标形状,还要传入一个画笔Paint。drawXXX方法以及传入其中的坐标决定了要绘制的图形的形状,比如drawCircle方法,用来绘制圆形,需要我们传入圆心的x和y坐标,以及圆的半径。drawXXX方法中传入的画笔Paint决定了绘制的图形的一些外观,比如是绘制的图形的颜色,再比如是绘制圆面还是圆的轮廓线等。
自定义view大致可以分为两类:
自定义ViewGroup一般是利用现有的组件根据特定的布局方式来组成新的组件,大多继承自ViewGroup或各种Layout,包含有子View。
例如:应用底部导航条中的条目,一般都是上面图标(ImageView),下面文字(TextView),那么这两个就可以用自定义ViewGroup组合成为一个Veiw,提供两个属性分别用来设置文字和图片,使用起来会更加方便。
基于com.squareup.leakcanary:leakcanary-android:2.5
LeakCanary 是一个适用于 Android 的内存泄漏检测库,其具有一种独特的能力,可以缩小每个泄漏的原因,从而帮助开发人员显着减少OutOfMemoryError崩溃。
基于Android10源码分析更新
1 | |
相信每位Android开发者对上面的代码都写过无数次了,那么问题来了: