- 学习笔记
- 工具类库
一、自定义 View
1、MaterialEditView
遇到的问题:Cannot resolve symbol AppCompatActivity
解决方法:File -> Invalidate Caches / Restart
2、SquareImageView
继承已有的 View,重写 onMeasure()
3、CircleView
继承自 View,完全进行自定义计算,重写 onMeasure(),用 resolveSize() / resolveSizeAndState() 修正结果。
4、TagLayout
自定义 Layout,继承自 ViewGroup,重写 onMeasure()、onLayout()
注意:通过 measureChildWithMargins 测量子 View 时,需要重写 generateLayoutParams() 方法,并返回 MarginLayoutParams 对象。
5、TouchView
自定义 View 的触摸反馈,重写 onTouchEvent() 方法。
6、ScalableImageView
通过 GestureDetector 和 OverScroller 实现双击放大并支持双向滑动的 View。
7、多点触控
- 接力型:RelayMultiTouchView
- 配合型:CooperateMultiTouchView
- 独立型:SelfMultiTouchView
8、手写 ViewPager:TwoPagerView
9、拖拽
- DragListenerGridView:使用 DragListener
- DragHelperGridView:使用 ViewDragHelper
- DragToCollectLayout:使用 DragListener
- DragUpDownLayout:使用 ViewDragHelper
二、事件分发
1、原理
2、Demo
ViewGroupDispatchActivity、SubView、SubViewGroup
三、Android 多线程
1、AsyncTask
Demo:AsyncTaskActivity
参考:Android 多线程:手把手教你使用 AsyncTask
2、HandlerThread
Demo:HandlerThreadActivity
参考:Android 多线程:手把手教你使用 HandlerThread
3、IntentService
Demo:IntentServiceActivity
参考:Android 多线程:IntentService 使用教程
这里有一个报错:Service Intent must be explicit,解决方法参考:Android "Service Intent must be explicit"解决办法
4、ThreadLocal
Demo:ThreadLocalActivity
参考:Java多线程:带你了解神秘的线程变量 ThreadLocal
四、ListView 与 RecyclerView
1、ListView
Demo:ArrayAdapterActivity、SimpleAdapterActivity、BaseAdapterActivity
五、网络请求
1、Retrofit
- GET Request Demo
- POST Request Demo
六、设计模式
1、动态代理:DynamicProxyActivity
七、进程间通信
1、Messenger
2、AIDL
3、ContentProvider