Woody's Blog

不为繁华易匠心

Android Choreographer和VSYNC机制

背景介绍 Android系统的UI流畅度一直被人诟病,Google团队在4.1(Jelly Bean)对UI流畅性进行改进,通过Project Butter对Android Display系统进行了重构,引入了3个核心元素,即VSYNC、Triple Buffer和Choreographer VSYNC机制 VSYNC是Vertical Synchronization(垂直同步)的缩写...

高仿朋友圈照片查看器(三)

ViewPager支持阻尼回弹

简介 朋友圈查看大图左右滑动到边距时有个阻尼回弹效果,ViewPager默认是不支持的,so,继承ViewPager自定义一个。 关键代码 private boolean performDrag(float x) { boolean needsInvalidate = false; final float deltaX = mLastMotio...

高仿朋友圈照片查看器(二)

用PhotoView实现手势缩放图片

简介 PhotoView是Chris Banes大神写的开源控件,Github地址,本文将介绍如何用PhotoView实现朋友圈手势缩放效果 PhotoView解析 Features 支持Pinch手势自由缩放 支持双击放大/还原 支持平滑滚动 在滑动父控件下能够运行良好。(例如:ViewPager) 支持基于 Matrix 变化(放大/缩小/移动)的事件监听 ...

高仿朋友圈照片查看器(一)

ImageView从CenterCrop平滑过渡到fitCenter

高仿朋友圈照片查看器(二) 用PhotoView实现手势缩放图片 高仿朋友圈照片查看器(三)ViewPager支持阻尼回弹 前言 最近公司的项目需要模仿朋友圈照片查看的效果,故在此记录下。Gif有点卡,实际效果很流畅:) Features 以九宫格方式展示1-9张缩略图 点击缩略图查看大图,平滑的过渡效果,移动&缩放 大图支持手势缩放,Pinch,拖动,双...

Android DiskLruCache源码分析

深入解析DiskLruCache

简介 缓存对于提升一个App的性能至关重要,对于需要使用大量图片的App来说,Android官方推荐使用LruCache+DiskLruCache对图片进行两级缓存,这样当用户重新打开App时,不需要再从网络上获取图片。DiskLruCache是一套磁盘缓存方案,采用LRU算法。 基本概念 DiskLruCache以key-value的形式在磁盘上缓存,支持一对多,线程安全。不支持多进...