Android 开发进阶: 自定义 View 1-1 绘制基础
http://www.apkbus.com/blog-16186-77717.html
Android 开发进阶: 自定义 View 1-2 Paint 详解
http://www.apkbus.com/blog-16186-77718.html
Android 开发进阶:自定义 View 1-3 drawText() 文字的绘制
http://www.apkbus.com/blog-16186-77719.html
Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助 clipXXX() 和 Matrix
http://www.apkbus.com/blog-16186-77720.html
Android 开发进阶:自定义 View 1-5 绘制顺序
http://www.apkbus.com/blog-16186-77722.html
Android 自定义 View 1-6:属性动画 Property Animation(上手篇)
http://www.apkbus.com/blog-16186-77723.html
Android 自定义 View 1-7:属性动画 Property Animation(进阶篇)
http://www.apkbus.com/blog-16186-77724.html
Android 自定义 View 1-8 硬件加速
http://www.apkbus.com/blog-16186-77725.html
Android UI 部分 2-1 布局基础
http://www.apkbus.com/blog-16186-77726.html
Android UI 部分 2-2 全新定义 View 的尺寸
http://www.apkbus.com/blog-16186-77727.html
Android UI 部分 2-3 定制 Layout 的内部布局
http://www.apkbus.com/blog-16186-77728.html
简介
这期虽然距离上期的时间比较久,但主要是我的个人原因,而不是因为这期的内容难。这期的内容还是比较简单的,主要是一些概念和原理上的东西,实操方面非常容易,所以和上期一样,主要把视频看看就差不多啦:
视频:http://www.apkbus.com/plugin.php?id=apkbus_video&op=item&vid=1017
总结
这期的文章依然是只有总结。但这次主要是因为我最近实在太多事情了……
定制 Layout 内部布局的方式
重写
onMeasure()
来计算内部布局重写
onLayout()
来摆放子 View
重写 onMeasure() 的三个步骤:
调用每个子 View 的
measure()
来计算子 View 的尺寸计算子 View 的位置并保存子 View 的位置和尺寸
计算自己的尺寸并用
setMeasuredDimension()
保存
计算子 View 尺寸的关键
计算子 View 的尺寸,关键在于 measure()
方法的两个参数——也就是子 View 的两个 MeasureSpec
的计算。
子 View 的 MeasureSpec 的计算方式:
结合开发者的要求(xml 中
layout_
打头的属性)和自己的可用空间(自己的尺寸上限 - 已用尺寸)尺寸上限根据自己的
MeasureSpec
中的 mode 而定EXACTLY / AT_MOST:尺寸上限为
MeasureSpec
中的size
UNSPECIFIED:尺寸无上限
重写 onLayout() 的方式
在 onLayout()
里调用每个子 View 的 layout()
,让它们保存自己的位置和尺寸。
共同学习,写下你的评论
评论加载中...
作者其他优质文章