android群英传 自定义滑动view,《Android群英传》读书笔记

《Android群英传》作者:徐宜生

本身感觉自己在动画这一块,缺的东西太多,在知乎上看到大家都推荐这一本书。

所以在kindle上看了样章,觉得非常值得入手,而且不仅仅是动画,是一本难得的进阶好书。

第一章 Android体系与系统构架 Context,对于context这里有两张图

图一 Context的结构图示

note-11614.html

图二 Context作用域

note-11614.html

所以说有一道面试题Context数量 = Activity数量+Service数量+1即Application

第二章 Android开发工具新接触 Android Studio 已经非常熟悉

ADB命令则属于虽然很重要,但是不常用

第三章 Android控件构架与自定义控件详解(重点) 控件结构

note-11614.html

这张表中我们可以知道,一个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); //EXACTLY模式的话, 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 View的绘制

———————————————————这里是书签 p38———————————————————

实际上,我依然在看这本书.为啥不写笔记了?

主要是,难度上来了,需要理解,更需要练习才能掌握..

所以,等我看第二遍的时候再总结

———————————————————这里是书签 p173———————————————————

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值