首页 > 安卓培训/ 正文
Android画的操作是由Framework层来进行处理的,整个 draw是从根View开始的,ViewGroup向子View发出 draw的请求,然后子View负责自己重画它们的invalid区域。Drawing一个Layout必须通过两个步骤:
1. 测量。measure() 从根节点到叶子节点依次测量,这样每个View都会存有各自的dimension.在我们的程序种我们可以重写onMeasure来设置更为精确的content大小,重写完后必须调用setMeasureDimension来存储View的宽和高 。
2.布局。layout也是从父节点到子节点,父节点根据刚才传递进来的measure信息来拜访它们的子节点。
当一个视图的measure()方法返回时,它的getMeasuredWidth()和getMeasuredHeight() 值必须被设置,以及所有
这个视图子节点的值。一个view的measure的宽度和高度值必须符合父视图的限制。这确保在度量过程之后,所有父节点接受所有它们的子节点的度量值。一个父视图可能会在其子视图上多次调用measure()方法。比如,父视图可能会通过未指定的尺寸调用measure来找到它们的大小,然后使用实际数值再次调用measure(),如果所有子视图未做限制的尺寸总合过大或过小(也即是,如果子视图之间不能对各自占据的空间达成共识的话,父视图将会干预并且使用第二个过程的规则)。
View.MeasureSpec 用于子View告诉父View它们想如何被测量和怎么放置。而 LayoutParams则是描述了View的宽和高是多少。对于每一个区域可以指定如下的值:
一个准确的数值。
·FILL_PARENT,这意味着视图想和父视图一样大(减掉填充padding)。
WRAP_CONTENT,这意味着视图只想有刚好包装其内容那么大(加上padding)。
对于不同的ViewGroup子类,有相应的LayoutParams子类。比如,相对布局RelativeLayout有它自己的LayoutParams子类,这包含了能够让子视图横向和竖向居中显示的能力。
度量规格(MeasureSpecs)被用来沿着树从父到子的下传度量需求。一个MeasureSpecs可以是下面三种模式之一:
UNSPECIFIED:父视图来决定其子视图的理想尺寸。比如,一个线性布局可能在它的子视图上调用measure() on its child,通过设置其高度为UNSPECIFIED 以及一个宽度为EXACTLY 240,来找出这个子视图在给定240像素宽度的情况下需要显示多高。
EXACTLY:父视图用来给子视图强加一个准确的尺寸。子视图必须使用这个大小,并确保其所有的后代将适合这个尺寸。
AT_MOST:这被父视图用来给子视图强加一个最大尺寸。子视图必须确保它自己以及所有的后代都适合这个尺寸。
文章由软件培训网整理,转载请注明!
- 上一篇:开发android所需什么知识
- 下一篇:现在学哪种编程语言最好
更多云计算时代将迎来哪些巨变,微服务架构的实施原理技术,软件开发人员未来必须掌握的这5大趋势,河南有北大青鸟在哪里,郑州有什么技术学校,郑州专门培训电脑的学校需要上几年相关文章
- 安卓技术好学吗?
- 在郑州做安卓工程师的月薪多少
- Android就业培训容易就业吗
- 安卓技术培训的就业前景怎么样
- 安卓游戏制作培训学校哪个好
- 软件编程怎么快速入门
- 没有基础怎么学习安卓
- 怎么开发安卓软件?
- C#好学还是安卓好学?
- 安卓手机开发前景怎么样?
- 3G-Android软件工程师怎么样?
- 安卓短期提升学习该怎么学呢?
- 大学生就业形势如何?
- 女生以后学什么手艺好?
- 软件工程这个专业怎么样?
- 高中毕业学安卓开发好找工作吗?
- 安卓人员必须掌握的开发工具
- 编程该如何学习,有什么好的方法吗?
- 如何选择一个好的软件开发公司
- 安卓软件工程师笑傲职场
- Android如何创建新项目及开发
- Android开发和iOS开发哪个更有前景?
- 美术专业可以学计算机编程么
- 郑州安卓培训机构排名靠前的是哪几个
- 如何快速掌握一种软件编程技术?
- 郑州的软件开发与设计哪家培训学校好?
- 郑州软件培训网告诉你如何才能学好编程不做菜鸟
- 给大家提供些android面试题摘要
- 搜索
-
- 热门标签