前言
在开发AndroidUI时,如果想要做出自己想要的特定的外观效果,就不可能只依赖Android原生组件,虽然说随着Android的版本更迭其原生组件的美观度有了很大的提升,但是对于一个完整的App来说,它们很难与我们想要的整体效果保持一致,所以这个时候我们就需要自定义组件来实现特定的效果。
本文将介绍实现基本的自定义组件的方法,并完成一个自定义的EditText做为示例。
自定义组件基本步骤
继承View的子类
在AndroidUI中,所有的布局、组件等界面元素都是继承自View类,这个类定义了一个界面元素的标准行为,包括确定位置,确定尺寸,绘制外观样式等,当我们自定义组件时,就需要重写onMeasure,onLayout,onDraw方法。当我们需要的组件与原生组件的功能相似时,我们可以直接继承自具体的View的子类,如ImageButton,当我们需要完全重新定义一个组件时,需要做的工作就比较多,这时就需要继承View或ViewGroup。本文暂时只讨论前者。
为自定义View添加属性
这里的属性是指配置UI组件时的属性,我们在自定义组件时,原生View的属性往往不能满足我们的配置需求,我们可能需要一些更多样化或更精确的控制,这时我们就需要为View添加属性,这样我们定义的组件就会变的通用。
编写代码覆盖View中的绘制方法
即覆盖View中的onMeasure,onLayout,onDraw等方法。
自定义事件响应方法和部分回调方法
onFinishInflate() 回调方法,当应用从XML