在你的回调方法中把条目中的图片反回来
myAdapter.setNum(new MyAdapter.getnum() {
@Override
public void success(int pos, ImageView imgview) {
addCart(imgview);
}
});
直接使用此方法 img为购物车那个图片,就是目的地,imgview为起始地,layout是布局的根节点
//添加购物车动画实现
public void addCart(ImageView imgview) {
//图片的宽高
int width = imgview.getWidth();
int height = imgview.getHeight();
//得到起始点坐标
int parentLoc[] = new int[2];
layout.getLocationInWindow(parentLoc);
int startLoc[] = new int[2];
imgview.getLocationInWindow(startLoc);
int endLoc[] = new int[2];
img.getLocationInWindow(endLoc);
final ImageView goods = new ImageView(getActivity());
goods.setImageDrawable(imgview.getDrawable());
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width, height);//这里你也可以自己写宽高
layout.addView(goods, params);
float startX = startLoc[0] - parentLoc[0] + imgview.getWidth() / 2;
float startY = startLoc[1] - parentLoc[1] + imgview.getHeight() / 2;
float toX = endLoc[0] - parentLoc[0] + img.getWidth() / 3;
float toY = endLoc[1] - parentLoc[1];
Path path = new Path();
path.moveTo(startX, startY);
path.quadTo((startX + toX) / 2, startY, toX, toY);
mPathMeasure = new PathMeasure(path, false);
//属性动画实现
ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, mPathMeasure.getLength());
valueAnimator.setDuration(1000);
// 匀速插值器
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float value = (Float) animation.getAnimatedValue();
// 获取当前点坐标封装到mCurrentPosition
mPathMeasure.getPosTan(value, mCurrentPosition, null);
goods.setTranslationX(mCurrentPosition[0]);
goods.setTranslationY(mCurrentPosition[1]);
}
});
valueAnimator.start();
//动画的监听
valueAnimator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
layout.removeView(goods);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});}
是的,这样就大功告成了,如果你出现点击条目没有响应的情况,那么看看你的根布局是否为RelativeLayout,改过来就好了。