android中measure过程、wrap_content详解以跟xml布局文新
在之前一篇博文中<< Android中View绘制流程以及invalidate()等相关方法分析>>,简
单的阐述 了Android View
制流程的个骤,即:
1 measure过程 测过程
2layout 过程 布局过程
3draw 过程 制过程
要想对Android 中View块深入理解,对个骤地学是必不可少的
,着重讲解如个内容:
1 measure过程
2 WRAP_CONTENTMATCH_PARENT/FILL_PARENT属性的原理说明
3 xml布局文件解析View树的流程分析
希望对大家能有帮助- - 分析版本基于Android 2.3
1WRAP_CONTENTMATCH_PARENT/FILL_PARENT
初入Android殿堂的学们,对个属性一定又爱又恨爱的是使用起来挺爽地
照葫芦画瓢即可,恨的
是时常混淆几个属性地意义,需要思而行在带着大家重温几个属性的用法
(希望没有啰嗦)
个属性都用来适应视图的水平或垂直大小,一个以视图的内容或尺基础的布局
比精确地指定视图范围
更加方便
fill_parent
设置一个视图的布局fill_parent将强制性地使视图扩展至父元素大小
match_parent
Android 中match_parent和fill_parent意思一样,但match_parent更贴,于
是从2.2开始两个词都可以
用,但2.3版本建议使用match_parent
wrap_content
自适应大小,强制性地使视图扩展以便显示其全部内容以TextView和
ImageView控件例,设置
wrap_content将完整显示其内部的文本和图布局元素将根据内容更改大小
可不要重复造轮子,以摘自<
的区别>>
然,们可以设置View的确宽高,而不是由以属性指定
[java] view plain copy print ?
0. android:layout_weight="wrap_content" //自适应大小
0. android:layout_weight="match_parent" //父视图等高
0. android:layout_weight="fill_parent" //父视图等高
0. android:layout_weight="00dip" //精确设置高度值 00dip
接来,们需要转换视角,看看ViewGroup.LayoutParams类及其派生类
2ViewGroup.LayoutParams类及其派生类
2.1 ViewGroup.LayoutParams类说明
Android API 中如绍:
LayoutParams are used by views to tell their parents how they want to be
laid out.
意思大概是说: View通过LayoutParams类告诉其父视图它想要地大小(即,长度和宽
度) 无法加载插件
因此,个View都包含一个ViewGroup.LayoutParams类或者其派生类,View类依赖
于ViewGroup.LayoutParams
路径:frameworks\base\core\java\android\view\View.java
[java] view plain copy print ?
0. public class View implements Drawable.Cal