对于canvas, drawable, bitmap的理解

来源:互联网 发布:java 解码和编码 编辑:程序博客网 时间:2024/06/08 01:27

这三个概念很容易把人绕晕,找了不少网上资料,都是抄来抄去,而且完全没说到点子上。看了下官方文档及源码,感觉可以这样理解这三个东东。

其实中心思想就一个,bitmap是最终存储数据的地方,其它类是辅助计算数据的。
也就是说,
1. bitmap用于存储最终的数据(用于显示,比如对应每个点的RGB值)
2. canvas是一个填写bitmap的工具。有点像bitmap是一张白纸,而canvas就是一张复印纸。
3. drawable是自身有bitmap,且提供了若干填写这个bitmap的功能的类。我们看drawable,它是一个abstract类,里面的draw函数也是abstract。这就意味着,你必需要自己继承自drawable,提供存储数据用的bitmap,并且实现draw函数(很多draw其实还是调用canvas实现的)。所以drawable有点类似于商店把白纸和复印纸做成套装出售。

原创粉丝点击