Button点击缩放动画效果

自定义Button实现button点击缩放动画效果

package com.example.mydemo.scalebutton;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;

import com.example.mydemo.R;

public class ScaleButton extends Button {
	private Context context;

	public ScaleButton(Context context) {
		this(context, null);
		this.context = context;
	}

	public ScaleButton(Context context, AttributeSet attrs) {
		this(context, attrs, 0);
		this.context = context;
	}

	public ScaleButton(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		super.onTouchEvent(event);
		switch (event.getAction() & MotionEvent.ACTION_MASK) {
		case MotionEvent.ACTION_DOWN:
			beginScale(R.anim.zoom_in);
			break;
		case MotionEvent.ACTION_MOVE:
			break;
		case MotionEvent.ACTION_UP:
			beginScale(R.anim.zoom_out);
			break;
		case MotionEvent.ACTION_CANCEL:
			beginScale(R.anim.zoom_out);
			break;
		}
		return true;
	}

	private synchronized void beginScale(int animation) {
		Animation an = AnimationUtils.loadAnimation(context, animation);
		an.setDuration(80);
		an.setFillAfter(true);
		this.startAnimation(animation);
	}
}

zoom_in.xml




    



 
  

zoom_out.xml




    



zoom_in.xml和zoom_out.xml文件放在res/anim目录下

使用时按照自定义控件的方式在布局文件中引用即可,在java代码中叶可以使用button的setOnClickListener事件

你可能感兴趣的:(android开发)