关于view 的canvas的理解

canvas?   英文翻译为帆布,作为android的开发人员一般解释为画布,我个人更愿意理解为画板

一个android树共用一个canvas 由最上层往下传

canvas是一个比较奇怪的概念,android  的视图其实是相当于一层一层的叠加的产生的效果,和PS,前端显示的是一样的,通过不断的层叠产生效果

每次调用Draw函数的时候都会产生一个视图层,这是重点

如下图所示

 

如下图所示

 

 

2.画布有一个平移和旋转的方法,画布进行旋转后,启用的图层也是旋转后的图层

 

3.canvas 

int save ()    --------将当前的画布状态保存到栈中
void restore()    ----------取出栈顶的画布状态并且恢复初始状态注意是画布层不是画板  ,只有invalidate()要求rootView重新遍历绘制的时候canvas对象才会变

在写这个时候发现两个个问题

Q.  TextView 的背景是怎么实现的,我开始以为是通过canvas.drawcolor()来绘制的,但是到源码里查看发现没有得到这个解释

 

在View的onDraw方法中根本没有找到,如果有人知道希望可以回答下

Q2.我在将画布的大小修改后TextView 的背景色大小居然没变,这怎么解释?

这是View的大小

 

这里是view中的方法

 

内容部是看不到了,但是背景居然还能显示

相关博客:

https://blog.csdn.net/harvic880925/article/details/39080931

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值