源码地址 基本思路 我们先考虑简单的情况,两个控件之间的图片拖拽,首先我们需要准备ImageViewA和ImageViewB两个ImageVie...
源码地址 实现原理概览 我们要实现手指控制图片的平移、旋转、缩放,首先得知道手指做了什么动作,比如用户两指间距离是变大还是变小,两指是否做了移动...
SharedPreferences SharedPreferences使用键值对的形式保存原始类型的数据 使用方式 原理 SharedPrefe...
有时候我们需要一些特殊的效果或者功能,而系统控件无法满足我们的需求,这时候就需要自己定义一个控件。 自定义view流程 继承View 要自定义V...
AsyncTask基本用法 AsyncTask是一个抽象类,我们需要创建一个子类继承它才可以使用 AsyncTask有三个泛型参数 Params...
基本过程 View事件分发的原理是责任链模式,事件层层传递,直到被消费。 从Activity->PhoneWindow->DecorView->...
属性 构造函数 add 判断是否扩容及扩容函数 get remove trim 当删除的元素很多,底层数组则有很多空间未使用造成浪费,此时可使用...
Dagger2是一个依赖注入框架,目前由google维护。关于依赖注入是什么可以看依赖注入简介 引入Dagger Dagger初体验 @Inje...
InputStream(OutputStream) InputStream(OutputStream)每次只能读写一个字节或一个字节数组,若要读...