顾名思义,自定义View就是自己绘制一个View。在现实中,画画需要考虑三件事情:1.画多大,2.画什么,3.画好后放哪儿。这分别对应View中的三个方法:
1.onMeasure(int widthMeasureSpec, int heightMeasureSpec);
2.onDraw(Canvas canvas);
3.onLayout(boolean changed, int left, int top, int right, int bottom) 。
对于1和3两个问题,http://hencoder.com/ui-1-1/中有很详细的解释。重点就是view的宽高和摆放位置的确定。
对于第二个问题,该教程阐述的非常全面了。
这里进行补充,官方文档中写到
The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, text, Bitmap), and a paint (to describe the colors and styles for the drawing).
即绘图的核心有四个基础组件。bitmap保存像素点,canvas保存写到bitmap的绘制步骤,原始绘制和画笔。
自定义View的绘制原理简述
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 通过之前的详细分析,我们知道:在measure中测量了View的大小,在layout阶段确定了View的位置。 完...
- 在前面一篇文章中,我们分析了Android应用程序窗口的绘图表面的创建过程。Android应用程序窗口的绘图表面在...