Button点击缩放动画效果
16lz
2021-01-22
自定义Button实现button点击缩放动画效果
<span style="font-family:SimSun;font-size:14px;">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);
}
}</span>
zoom_in.xml
<pre name="code" class="java"><span style="font-family:SimSun;font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<scale
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.2"
android:toYScale="1.2" />
</set></span>
zoom_out.xml
<span style="font-family:SimSun;font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<scale
android:fromXScale="1.2"
android:fromYScale="1.2"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1"
android:toYScale="1" />
</set></span>
将zoom_in.xml和zoom_out.xml文件放在res/anim目录下
使用时按照自定义控件的方式在布局文件中引用即可,在java代码中叶可以使用button的setOnClickListener事件
更多相关文章
- Android开发学习之ImageView手势拖拽、缩放、旋转
- Android Studio Gradle 缓存文件夹设置
- NDK笔记---Android.mk文件
- android设备中的临时文件夹在哪里?
- 使用Java解析XML文件以获取名称列表
- cocos2d-x避免手动修改android.mk文件来编译
- 尝试查看所有XML文件的图形布局时出现StackOverFlowError
- android使用存储在assets文件夹中的Linux工具
- 如何将音频文件与新视频文件合并?是否可以在Android中使用?