为了账号安全,请及时绑定邮箱和手机立即绑定

Android UI 部分 2-3 定制 Layout 的内部布局

标签:
Android

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 内部布局的方式

  1. 重写 onMeasure() 来计算内部布局

  2. 重写 onLayout() 来摆放子 View

重写 onMeasure() 的三个步骤:

  1. 调用每个子 View 的 measure() 来计算子 View 的尺寸

  2. 计算子 View 的位置并保存子 View 的位置和尺寸

  3. 计算自己的尺寸并用 setMeasuredDimension() 保存

计算子 View 尺寸的关键

计算子 View 的尺寸,关键在于 measure() 方法的两个参数——也就是子 View 的两个 MeasureSpec 的计算。

子 View 的 MeasureSpec 的计算方式:

  • 结合开发者的要求(xml 中 layout_ 打头的属性)和自己的可用空间(自己的尺寸上限 - 已用尺寸)

  • 尺寸上限根据自己的 MeasureSpec 中的 mode 而定

    • EXACTLY / AT_MOST:尺寸上限为 MeasureSpec 中的 size

    • UNSPECIFIED:尺寸无上限

重写 onLayout() 的方式

在 onLayout() 里调用每个子 View 的 layout() ,让它们保存自己的位置和尺寸。

原文链接:http://www.apkbus.com/blog-16186-77728.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消