前言
Android系统已经为我们提供了有各种功能的View了,如显示文本的,图片的,还提供了一些ViewGroup控制子View显示的,如ListView,LinearLayout,RelativeLayout,然而呢,面对复杂多变的产品需求,这些还是无法满足。在黑马的课程中,我们有4天的专门讲解自定义View知识的课程,也在4个项目中去穿插的讲解自定义控件,可以说算是比较全面了。今天我从几个方面综合讲解下如何去自定义出你想要的View。
分析
当我们说要自定义一个View时,其实你是在想自定义这个View的这些方面:
1. 你想自定义这个View上显示的内容
2. 你想自定义这个View中子View的摆放位置
3. 你想让这个View跟随手指的移动进行某些变化
所以,我们就从这3个方面来学习如何自定义效果。
实践
如何自定义View显示的内容首先,你要知道想自定义View应该去继承自谁,到底是View还是ViewGroup;如果你只是想自定义单个View的内容,那么应该继承自View;如果你想自定义一个布局的显示内容,那么应该继承ViewGroup。
现在我们设定需求,要做一个显示一个红色圆形的View,那么你要继承View,重写onDraw方法,因为onDraw方法就是允许自定义显示内容的方法。我们在里面绘制一个圆,代码如下:
效果图如下:
下面呢,我们在设一个复杂点的需求,要求自定义一个显示一个红色对勾的View,这时候要绘制对勾,需要借助Path类来勾勒。代码如下:
效果图如下:
Ok,以上这些就是如何自定义View内容的技巧,当然如果你想绘制更加复杂的效果,那就要仔细学习一下Canvas和Path的api了。
其他精华推荐: