安卓UI学习(2)--能自定义点击事件,且带点击动画的按钮

来源:互联网 发布:michael page 知乎 编辑:程序博客网 时间:2024/04/29 12:26
由于项目需要,我需要做一个带动画的按钮,因为这种带动画的按钮需要重复使用,所以我想将按钮封装成自带动画的类——即:

1.自动响应点击事件,播放动画
2.给用户提供自定义按键事件的接口

而问题来了,在实际中我们不可能给同一个按钮类设置两个onclicklistener,一个响应动画,一个给用户自定义事件,因为下一个onclicklistener会覆盖上一个onclicklistener。

那么要如何解决呢?

很简单,继承Button类,再声明两个成员变量,这两个变量都是Onclicklistener类的变量,一个的onclick函数播放动画,一个留给类外部(给用户自定义事件),然后在OnClick(view v)函数中同时调用这两个listener的onclick()函数就可以了。

代码如下:
public class Animated_Button extends Button{    final public OnClickListener listener1;    final private OnClickListener listener2;    public Animated_Button(Context context, AttributeSet attributeSet)    {        super(context,attributeSet);        listener1=new OnClickListener(){        @Override        public void onClick(View v)      {          //执行播放动画的操作      }     };      //listener2声明为public的,为的就是让外部自定义事件      this.setOnClickListener(new OnClickListener(){      @Override      public void onClick(View v){      listener1.onClick(v);      listener2.onClick(v);      });    }}
接下来只要在类外部初始化listener2就可以了。

1 0