自定义控件
当android提供的控件不满足需求时, 我们需要自己去定制所需要的控件. 例如在一个TV项目中, 我们需要一种button, 当不选择时, 文本颜色是白色, 当选中时, 文本颜色是黑色, 这时android中自带的button是无法实现的, 那么我们需要去自己定制这种控件.
自定义控件的步骤一般分为:
(1). 声明一个view对象, 继承相对布局,或者线性布局或者其他的ViewGroup.
(2). 在自定义的View对象的构造方法里面就把布局都初始化完毕.
(3). 根据需求, 扩展自定义控件.
根据需求我们去实现改变文本颜色的button, 命名为DButton, 首先:
1. 设置自定属性
在 value 目录下创建 名为 attrs.xml文件, 在此文件中声明自定义的属性
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<declare-styleable name="DButton">
<attr name="normalColor" format="reference|color" />
<attr name="selectedColor" format="reference|color" />
<attr name="text" format="reference|string" />
<attr name="textSize" format="dimension" />
</declare-styleable>
</resources>
通过normalColor属性来设置button没有选中时的文本颜色, selectedColor属性来设置button选中时的文本状态.
关于format属性有:
dimension 尺寸值
reference 资源ID
color 颜色值
boolean 布尔值
float 浮点值
integer 整型值
string 字符串
enum 枚举值
flag 位或运算
这些属性可以组合使用, 例如上面的 format="reference | color"
2. 创建DButton对象, 继承LinearLayout
public class DButton extends LinearLayout