功能:当用户点击元素,执行图片缩放动画,当按住元素并且移开位置离开该元素,之前元素将执行放大回到原状,而新选中的元素将进行缩放。
效果图
即:gridview中的元素按住就会下陷变小,移动离开就会变回原样,点击就会进入跳转界面
由于为了完整的监听ontouch事件,即能监听ACTION_DOWN,MOVE,UP返回值必须为true
但是由于为true导致事件被拦截了,之后的自带的onItemClickListener的监听事件不能在使用了
这里我通过判断点击时候的位置的item和抬起的item的位置,进行点击事件的判断
写了一个工具类,代码如下
package com.example.util;
import android.content.Context;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.GridView;
import android.widget.Toast;
import com.example.test.R;
public class AnimationUtil {
// action down按下动画
private static Animation downAnimation;
// action up动画
private static Animation upAnimation;
// 前一个元素
private static int tempChildViewId = -1;
// 按下时候的元素,设置为公有方便之后查看
public static int downChildViewId = -1;
// 抬起时候的元素,设置为公有方便之后查看
public static int up