Android自身提供了许多widgets,但是有时候这些widgets并不能满足我们的需求,这时我们就需要自定义View,本文会详细说明自定义View的各种理论基础,只有理解了这些知识,我们才能更好地实现各种功能的控件。
我觉得自定义View中最重要的部分就是绘图和交互,自定义的绘图使得你的View与众不同,交互使用户可以与你的View进行交互,而绘图的前提是View的量算与布局,交互的基础是触摸事件,所以量算、布局、绘图、触摸事件这些是自定义View的核心。
除此之外,一个设计友好的自定义View还应该可以像Android中自带的widget一样在XML中定义属性,本文也会对此进行介绍。
- 量算、布局及绘图机制概述
Android中View的量算、布局及绘图机制 - 量算
源码解析Android中View的measure量算过程 - 布局
源码解析Android中View的layout布局过程 - 绘图
Android中Canvas绘图基础详解(附源码下载)
Android中Canvas绘图之PorterDuffXfermode使用及工作原理详解
Android中Canvas绘图之Shader使用图文详解
Android中Canvas绘图之MaskFilter图文详解(附源码下载)
Android中GPU硬件加速控制及其在2D图形绘制上的局限
图文详解Andorid中用Shape定义GradientDrawable - 触摸事件
Android中的MotionEvent
Android中TouchEvent触摸事件机制 - 定义XML属性
Android中View自定义XML属性详解以及R.attr与R.styleable的区别
希望本文对大家有所帮助,后面会多写一些自定义View实例的文章。