- 截取图片绘制
- matrix中set,post,pre的区别
- matrix的平移,旋转,缩放,倾斜,除了倾斜外其他都可以指定中心点
- 通过线程控制view的绘制(线程控制动画)
- view的事件分发和view的拦截事件分发(activity拦截事件分发给view)
-
draw中抗锯齿的实现:一是通过paint的api方法实现,不过此api方法只能够控制paint绘制图形抗锯齿,而是通过设置画布抗锯齿可以实现paint和绘制bitmap图片同时抗锯齿即:
draw抗锯齿实现 - Android中实现全屏通常包含两种方式实现:一是通过页面的主题设置实现(无标题无状态栏),另外一种是代码中实现,此不再详述可以参考先前文章沉浸式状态栏的实现。
- 扇形的绘制
- android canvas提供apidrawArc进行扇形的绘制,针对其参数下面注解:
canvas.drawArc(oval,90,10,true,paint);
第一个参数是需要设置控件大小,把我们上面创建的RectF对象放进去,需要注意的这个大小是整个view的大小,若圆分为扇形可以视作为整个圆的大小。
第二个参数是需要设置扇形的出现的位置,分别是:90出现的位置、180出现的位置、270出现的位置和360出现的位置,即扇形的起始角度。
第三个参数为扇形的宽度,这里的宽度是10,可以理解为扇形的角度,即整个扇形角度是多少?
第四个参数是个布尔值,如果为true则把扇形的两边画出来,为false相反,绘制扇形是否为实心扇形。
第五个参数就是画笔了,就是按照画笔的样式来画出来。
- android canvas提供apidrawArc进行扇形的绘制,针对其参数下面注解:
- 文本的绘制:
-
canvas提供两个api进行文本的绘制,drawText进行普通文本的绘制,需要指定绘制的x,y坐标值,drawTextOnPath则可以在一条路径上进行文本的绘制,斜向文本和竖向文本皆是通过path实现的。
-
drawText指定的x,y并不肯定是文本的左侧的坐标值,xy的坐标值取决于paint的textAlign属性和文本基线,用户可以通过setapi设置textAlign这个属性。
-
left:对应xy为文本左侧基线的坐标值,center:文本居中基线的坐标值,right:文本右侧基线的坐标值。
-
文本基线:文本存在五条线,top,bottom,ascent,descent,baseline,paint绘制的时候,以baseline为0,bottom和descent为负,top和ascent为正,即baseline的计算取中减去descent或者bottom即可。即:
text基线 -
文本设置paint后可以通过Paint.FontMetrics计算所得文本的bottom和top等值,进而计算baseline的值。
计算基线
-
参考文章:
Android:扇形绘制
Android:text文本绘制
网友评论