《Android群英传》作者:徐宜生
本身感觉自己在动画这一块,缺的东西太多,在知乎上看到大家都推荐这一本书。
所以在kindle上看了样章,觉得非常值得入手,而且不仅仅是动画,是一本难得的进阶好书。
第一章 Android体系与系统构架
图一 Context的结构图示
![Context的结构图示]()
图二 Context作用域
![Context作用域]()
所以说有一道面试题Context数量 = Activity数量+Service数量+1即Application
第二章 Android开发工具新接触
- Android Studio 已经非常熟悉
- ADB命令则属于虽然很重要,但是不常用
第三章 Android控件构架与自定义控件详解(重点)
- 控件结构
这张表中我们可以知道,一个activity的view结构大概什么样
另外 : 控件主要就是 ViewGroup 和 View
当然在view和viewgroup控件树顶部是一个ViewParent同意调度分配交互管理事件
-
View的测量
MeasureSpec这个类
那么测量还有三种不同的模式
1.EXACTLY这个就是控件已经指定了大小,直接拿到就OK
2.AT_MOST取最大值模式,我觉得是时候把代码写一遍了
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(measureWidth(widthMeasureSpec)
,measureHeight(heightMeasureSpec));
}
private int measureHeight(int heightMeasureSpec) {
int result = 0;
int method = MeasureSpec.getMode(heightMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
if(method == MeasureSpec.EXACTLY){
result = height;
}else{
result = 300;
if(method == MeasureSpec.AT_MOST){
result = Math.min(result,height);
}
}
return result;
}
所以,为什么会有这种奇怪的测量模式?
那是因为,你在很多时候会使用warp_content
也就是说,如果你自定义控件需要支持warp_content,那就必须重写onMeasure
———————————————————这里是书签 p38———————————————————
实际上,我依然在看这本书.为啥不写笔记了?
主要是,难度上来了,需要理解,更需要练习才能掌握..
所以,等我看第二遍的时候再总结
———————————————————这里是书签 p173———————————————————