通常,自定义View有三个大的区分点,在日常开发中遇到自定义View的需求时,最好想一想该走哪条路,走得快一些轻松些总是好的。
1 简单的“自定义”
需求总是在不经意间来临,也许是原生控件丑了点,也许是哪些布局复用的多了些,Leader让改改,写个自定义View解决一下,减少一下重复开发工作,这时候该我们迎难而上了,必要的时候还是得造个轮子。
这时候,看一眼需求,原来是这个TextView
的样式太单调了,只有简单的背景、前景色之类的,产品和UI让改改加点炫酷的东西,文字得一上一下写(上下)。得,自定义View吧,感觉相对于原生的TextView
区别只有一个,绘制过程中调整一下位置即可,那就简单点,写个UpDownTextView
,继承TextView
,改改onDraw()
方法。
第一个需求解决,来看下一个需求,咱们项目中有个布局好像用的比较多,好几个地方用到了,关键它逻辑也一样,只是include布局文件还是要写不少重复代码,得抽离一下。自定义View吧,看看已经抽离的布局文件,这个布局是一个RelativeLayout
,里面包含了我们需要的控件之类的,写个BtRelativeLayout
继承RelativeLayout
,然后把布局文件的根布局Re