Android
文章平均质量分 78
melodylzl
这个作者很懒,什么都没留下…
展开
-
LruCache源码分析
LruCache的原理 LruCache主要靠LinkedHashMap的一个按访问排序的特性实现的,LinkedHashMap在构造时可传入accessOrder参数,为true时,LinkedHashMap在每次get方法时,会将获取到的当前节点移至末尾,从而实现LRU的思想。 LruCache源码分析 1、构造函数 /** 唯一的构造函数,需要传入缓存的最大值 */ public LruCa...原创 2018-12-03 10:37:54 · 107 阅读 · 0 评论 -
HashMap源码分析
概述 本文源码针对Java8的HashMap。HashMap内部是由数组+链表或红黑树的结构实现的。HashMap默认初始化数组大小为16,负载因子是0.75,初始阀值12,每当数组元素的数量超过阀值后会扩容,每次扩容为旧空间大小的一倍,阀值也是增大一倍。 put() put()先判断要放入的值是否会哈希冲突,如果不哈希冲突,则直接在hash到的位置插入。 如果发生冲突,判断是是链表还是红黑树,链...原创 2018-12-03 10:38:38 · 74 阅读 · 0 评论 -
Android动画总结
动画分为三种:View动画、帧动画和属性动画 View动画 View动画共有四种动画:TranslateAnimation、RotateAnimation、ScaleAnimation和AlphaAnimation。四个动画类都继承于抽象类Animation。 名称 标签 子类 效果 平移动画 TranslateAnimation 移动View 缩放动画 ScaleAnim...原创 2018-12-03 10:40:21 · 188 阅读 · 0 评论 -
从源码分析LayoutInflate的inflate方法
LayoutInflater的inflate方法 public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot); resource:要创建布局的xml root:父视图 attachToRoot:是否将创建布局生成的view添加进父视图中 该方法会继续调用以下代码: pub...原创 2018-12-03 10:45:12 · 196 阅读 · 0 评论