博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
摘要:HenCoder Android UI 部分 2-3 定制 Layout 的内部布局
阅读量:3727 次
发布时间:2019-05-22

本文共 776 字,大约阅读时间需要 2 分钟。

这期是 HenCoder 布局部分的最后一期:重写 onMeasure() 和 onLayout() 来定制 Layout 的内部布局。

简介

这期虽然距离上期的时间比较久,但主要是我的个人原因,而不是因为这期的内容难。这期的内容还是比较简单的,主要是一些概念和原理上的东西,实操方面非常容易,所以和上期一样,主要把视频看看就差不多啦:

如果看不到视频,可以点 这里 直接去 B 站看;如果你在海外,可以点 这里 去 YouTube 上看。
总结

这期的文章依然是只有总结。但这次主要是因为我最近实在太多事情了……

定制 Layout 内部布局的方式

  1. 重写 onMeasure() 来计算内部布局
  2. 重写 onLayout() 来摆放子 View

    重写 onMeasure() 的三个步骤:

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

  4. 计算子 View 的位置并保存子 View 的位置和尺寸
  5. 计算自己的尺寸并用 setMeasuredDimension() 保存
    计算子 View 尺寸的关键

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

子 View 的 MeasureSpec 的计算方式:

  • 结合开发者的要求(xml 中 layout_ 打头的属性)和自己的可用空间(自己的尺寸上限 - 已用尺寸)
  • 尺寸上限根据自己的 MeasureSpec 中的 mode 而定
    • EXACTLY / AT_MOST:尺寸上限为 MeasureSpec 中的 size
    • UNSPECIFIED:尺寸无上限
      重写 onLayout() 的方式

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

转载地址:http://nuvnn.baihongyu.com/

你可能感兴趣的文章
opencv学习笔记五(图像混合)
查看>>
opencv学习笔记六(调整图像亮度与对比度)
查看>>
opencv学习笔记七(绘制图像和文字)
查看>>
OpenCV的下载安装与VS2013的配置
查看>>
OpenCV在MFC窗口显示图像
查看>>
开发MFC界面爬取图片工具一(原理简介及使用OpenSSL连接https网站)
查看>>
开发MFC爬取图片工具二(实现爬取图片功能)
查看>>
开发MFC界面爬取图片工具三(结合MFC界面时遇到的问题及解决方法)
查看>>
开发MFC爬取图片工具四(建立MFC应用程序)
查看>>
MFC界面爬取图片工具五(效果展示)
查看>>
opencv学习笔记九(膨胀与腐蚀及trackbar滑动条)
查看>>
OpenCV学习笔记八(图像模糊)
查看>>
opencv学习笔记10(形态学操作)
查看>>
opencv学习笔记11(形态学操作应用)
查看>>
opencv学习笔记12(图像金字塔)
查看>>
opencv学习笔记13(基本阈值操作)
查看>>
opencv学习笔记14(自定义线性滤波)
查看>>
数据动态排名工具(使用方式)
查看>>
数据动态排名工具(所有源码)
查看>>
html网页转pdf工具一(引言及使用效果)
查看>>