示例代码
// 创建一个放大动画效果,使CardView的尺寸从1.0倍放大到1.1倍
ScaleAnimation scaleUpAnimation = new ScaleAnimation(
1.0f, 1.1f, // 初始尺寸到最终尺寸的比例,x轴方向
1.0f, 1.1f, // 初始尺寸到最终尺寸的比例,y轴方向
Animation.RELATIVE_TO_SELF, 0.5f, // 动画中心点相对于自身的位置,x轴方向
Animation.RELATIVE_TO_SELF, 0.5f); // 动画中心点相对于自身的位置,y轴方向
scaleUpAnimation.setDuration(200); // 设置动画持续时间为200毫秒
scaleUpAnimation.setFillAfter(true); // 设置动画结束后保持最终状态
// 创建一个缩小动画效果,使CardView的尺寸从1.1倍缩小回1.0倍
ScaleAnimation scaleDownAnimation = new ScaleAnimation(
1.1f, 1.0f, // 初始尺寸到最终尺寸的比例,x轴方向
1.1f, 1.0f, // 初始尺寸到最终尺寸的比例,y轴方向
Animation.RELATIVE_TO_SELF, 0.5f, // 动画中心点相对于自身的位置,x轴方向
Animation.RELATIVE_TO_SELF, 0.5f); // 动画中心点相对于自身的位置,y轴方向
scaleDownAnimation.setDuration(200); // 设置动画持续时间为200毫秒
scaleDownAnimation.setFillAfter(true); // 设置动画结束后保持最终状态
// 为CardView设置触摸监听器
myCardView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
// 当触摸事件是按下时
case MotionEvent.ACTION_DOWN:
myCardView.startAnimation(scaleUpAnimation);
break;
// 当触摸事件是抬起时
case MotionEvent.ACTION_UP:
myCardView.startAnimation(scaleDownAnimation);
break;
}
return true; // 返回true表示事件已处理,不再传递
}
});