1,自定义属性
新建attrs.xml,通过declare-styleable创建自己定义的属性,用于xml所引用的资源类型。
2,编写自定义View类,继承View,LinearLayout,…….
3,在xml中使用自定义View。Android Studio中使用xmlns:myview = “http://schemas.android.com/apk/res-auto“引入namespace。之后既可以通过自己命名的myview引用自定义的属性
本Demo实现的是两个按钮,左按钮,右按钮,并利用回调函数实现监听事件。
定义的属性格式如下:
左按钮
<attr name="leftButton_text" format="string"/>
<attr name="leftButton_color" format="color"/>
<attr name="leftButton_background" format="reference"/>
<attr name="leftButton_size" format="dimension"/>
右按钮:
<attr name="rightButton_text" format="string"/>
<attr name="rightButton_color" format="color"/>
<attr name="rightButton_background" format="reference"/>
回调接口定义:通过回调接口,可以将具体代码放在Activity端处理,而不是在自定义View的代码中。
public interface MyButtonOnClickListener{
public void leftButtonListen();
public void rightButtonListen();
}
private MyButtonOnClickListener myButtonOnClickListener;
public void setMyButtonOnClickListener(MyButtonOnClickListener myButtonOnClickListener){
this.myButtonOnClickListener = myButtonOnClickListener;
}