Android-开发自定义组件
一 自定义组件分类
1 Customized Component:
当前的组件功能不完善,通常继承View,增加更多的属性和事件,纵向的拓展
2 Compound Component:
继承ViewGroup,把多个简单控件通过布局拼装为一个符合控件,横向拓展
二 定义组件步骤
1 选择继承:
View或者View的子类
2 类的初始化
新增属性和初值设定
3 重载方法
布局及呈现
onDraw(), onMessure()
4 事件机制
onKeyEvent
监听器
重载函数(观察者模式)
5 自定义事件
建立接口
interface onIconButtonListener
{
public void onKeyDown(String pKeyObject);
}
构建接口对象
private onIconButtonListener mOnIconButtonListener;
设置事件监听函数
public void setOnIconButtonListener(onIconButtonListener pOnIconButtonListener)
{
pOnIconButtonListener = mOnIconButtonListener;
}
重写回调某些事件的方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// TODO Auto-generated method stub
if (mOnIconButtonListener != null)
{
mOnIconButtonListener.onKeyDown("Hello chengzhi");
}
return super.onKeyDown(keyCode, event);
}
三 使用组件
在xml文件中
若组件类不为内部类
<包名+类名 属性>
<com.chengzhi.standerviewhomework.MyIconButton 属性/>
若组件类为内部类
<View 包名$类名 属性>用于组件是Activity的内部类的时候
<view class="com.chengzhi.standerviewhomework.MyIconButtonActivity$MyIconButton" 属性/>