当android 原生态控件无法满足我们的需求,我们就可以互建一个新的自定义的View来实现需要的功能。对于自定义的控件的分类,基本可以分为三类。
1> 自制控件,也称为自定义控件。通常继承于View或者ViewGroup的组件,
2>组合控件,就是利用系统已经存在的控件,组合到一起,实现一个符合需求的控件。
3>扩展控件,继承系统原有的组件,然后在此基础之上新添新的功能与逻辑,使其更加完善的控件。
效果图
继承RelativeLayout类,在此基础之上放置两个Button和一个TextView,组成一个新的UI特性的组件。
一个共通的UI组件,需要设计出相对应的接口,让控制者能灵活的控制TopBar,不仅可以提高界面的复用率,同时在修改UI界面时,能做到快速的修改,而不需要对每个界面的标题栏都进行修改。
那么我在设计这样的UI界面时,必须要考虑到模板应该就有的通用性与可定制型,也就是说需要给调用者丰富的接口,让使用者能更改模板的文字、颜色、行为等。而不是所有的模板都一样。
1.定义属性
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="TopBar">
<attr name="title" format="string"/><!-- string-->
<attr name="titleTextSize" format="dimension"/>
<attr name="titleTextColor" format="color"/>
<attr name="background" format="reference"/>
<attr name="leftTextColor" format="color"/>
<attr name="leftText" format="string"/>
<attr name="rightTextColor" format="color"/>
<attr name="rightBackground" format="reference"/>
<attr name="rightTe