【声明】本内容不知道是在哪里下载的demo代码,找不到原作者了,如有发现请联系我,加上作者或者删除该内容!
大佬的思路如下:

1、首先设置生成加入购物车效果代码,文章最后面代码NXHooldeView 文件
2、获取点击添加购物车按钮 view

 NXHooldeView nxHooldeView = new NXHooldeView(this);int position[] = new int[2];view.getLocationInWindow(position);nxHooldeView.setStartPosition(new Point(position[0], position[1]));ViewGroup rootView = (ViewGroup) this.getWindow().getDecorView();rootView.addView(nxHooldeView);

3、获取购物车位置

tv_good_fitting_num.getLocationInWindow(endPosition);nxHooldeView.setEndPosition(new Point(endPosition[0], endPosition[1]));

4、监听效果并开始执行

nxHooldeView.setnXanimatioListener(new NXHooldeView.NXanimatioListener() {@Overridepublic void startChangeProductNum() {Log.i("MainActivity","add success ! ");}});nxHooldeView.startBeizerAnimation();

以下是生成加入购物车效果

public class NXHooldeView extends TextView implements ValueAnimator.AnimatorUpdateListener {public static final int VIEW_SIZE = 20;protected Context mContext;protected Paint mPaint4Circle;protected int radius;protected Point startPosition;protected Point endPosition;public NXHooldeView(Context context) {this(context, null);}public NXHooldeView(Context context, AttributeSet attrs) {this(context, attrs, 0);}public NXHooldeView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);this.mContext = context;mPaint4Circle = new Paint();mPaint4Circle.setColor(Color.RED);mPaint4Circle.setAntiAlias(true);setGravity(Gravity.CENTER);setText("1");setTextColor(Color.WHITE);setTextSize(12);}public void setStartPosition(Point startPosition) {startPosition.y -= 10;this.startPosition = startPosition;}public void setEndPosition(Point endPosition) {this.endPosition = endPosition;}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int PX4SIZE = (int) convertDpToPixel(VIEW_SIZE, mContext);setMeasuredDimension(PX4SIZE, PX4SIZE);radius = PX4SIZE / 2;}@Overrideprotected void onDraw(Canvas canvas) {canvas.drawCircle(getMeasuredWidth() / 2, getMeasuredHeight() / 2, radius, mPaint4Circle);super.onDraw(canvas);}public void startBeizerAnimation() {if (startPosition == null || endPosition == null) {return;}int pointX = (startPosition.x + endPosition.x) / 2;int pointY = (int) (startPosition.y - convertDpToPixel(100, mContext));Point controllPoint = new Point(pointX, pointY);BezierEvaluator bezierEvaluator = new BezierEvaluator(controllPoint);ValueAnimator anim = ValueAnimator.ofObject(bezierEvaluator, startPosition, endPosition);anim.addUpdateListener(this);anim.setDuration(400);anim.addListener(new AnimatorListenerAdapter() {@Overridepublic void onAnimationEnd(Animator animation) {super.onAnimationEnd(animation);ViewGroup viewGroup = (ViewGroup) getParent();viewGroup.removeView(NXHooldeView.this);}});//自己添加的 动画结束监听anim.addListener(new Animator.AnimatorListener() {@Overridepublic void onAnimationStart(Animator animator) {}@Overridepublic void onAnimationEnd(Animator animator) {if (nXanimatioListener!=null) {nXanimatioListener.startChangeProductNum();}}@Overridepublic void onAnimationCancel(Animator animator) {}@Overridepublic void onAnimationRepeat(Animator animator) {}});anim.setInterpolator(new AccelerateDecelerateInterpolator());anim.start();}//自己 添加的 动画结束的接口public interface NXanimatioListener{void startChangeProductNum();}public void setnXanimatioListener(NXanimatioListener nXanimatioListener) {this.nXanimatioListener = nXanimatioListener;}public NXanimatioListener nXanimatioListener;@Overridepublic void onAnimationUpdate(ValueAnimator animation) {Point point = (Point) animation.getAnimatedValue();setX(point.x);setY(point.y);invalidate();}public class BezierEvaluator implements TypeEvaluator<Point> {private Point controllPoint;public BezierEvaluator(Point controllPoint) {this.controllPoint = controllPoint;}@Overridepublic Point evaluate(float t, Point startValue, Point endValue) {int x = (int) ((1 - t) * (1 - t) * startValue.x + 2 * t * (1 - t) * controllPoint.x + t * t * endValue.x);int y = (int) ((1 - t) * (1 - t) * startValue.y + 2 * t * (1 - t) * controllPoint.y + t * t * endValue.y);return new Point(x, y);}}public static float convertDpToPixel(float dp, Context context) {Resources resources = context.getResources();DisplayMetrics metrics = resources.getDisplayMetrics();float px = dp * (metrics.densityDpi / 160f);return px;}
}

电商--添加宝贝入购物车动画效果制作相关推荐

  1. android实现购物车效果,Android 实现蘑菇街购物车动画效果

    使用过蘑菇街的用户基本上都知道有一个加入购物车的动画效果,此处不具体描述想知道的可以去下载体验一下. 1.思路 目前想到两种方式实现这种效果,一是使用Tween动画,直截了当的进行一个移动,蘑菇街就是 ...

  2. android 原生砸金蛋 动画,C4D-砸金蛋动画效果制作

    本篇教程讲C4D-砸金蛋动画效果制作,喜欢的一起来学习吧! 那就开始今天的课程吧. 1.搭建画面中的场景.打开C4D,创建一个圆柱,[半径]为900,[高度]为200,[高度分段]为2,[旋转分段]为 ...

  3. css动画效果制作正方体旋转相册

    以下代码利用css动画效果制作了一个旋转的正方体,给正方体六个面放置好图片就可以当一个炫酷有趣的正方体旋转相框啦!可以将女朋友的照片放进去哦,赶快去试试,给女朋友一个惊喜吧! 下面没有放入背景建议大家 ...

  4. wpsppt页面卷曲在哪里_ppt2013页面卷曲动画效果制作方法.doc

    ppt2013 页面卷曲动画效果制作方法 ppt2013 页面卷曲动画效果制作方法 ppt2013 页面卷曲动画效果制作方法 一:先建立一个主 PPT 文件, ppt 怎么制作 ? 第一张封面, 第二 ...

  5. HTML5期末大作业:京东网站设计——仿2016版京东首页(1页) HTML+CSS+JavaScript 大学生网页作品 电商网页设计作业模板 学生网页制作源代码下载

    HTML5期末大作业:京东网站设计--仿2016版京东首页(1页) HTML+CSS+JavaScript 大学生网页作品 电商网页设计作业模板 学生网页制作源代码下载 常见网页设计作业题材有 个人. ...

  6. 网页设计作业`京东网站设计——仿2016版京东首页(1页) HTML+CSS+JavaScript 大学生网页作品 电商网页设计作业模板 学生网页制作源代码下载

    HTML5期末大作业:京东网站设计--仿京东首页(1页) HTML+CSS+JavaScript 大学生网页作品 电商网页设计作业模板 学生网页制作源代码下载 文章目录 HTML5期末大作业:京东网站 ...

  7. js添加到购物车动画效果实现

    方法一: 用js控制购车的的位置实现 原理解析: 通过js动态生成一个过度元素(就是一个可以移动的小球),并控制该元素的位置移动,从点击按钮dom元素移动到购物车的dom元素,实现添加到购物车的动态效 ...

  8. android京东加入购物车效果,京东360buy 手机项目的“加入购物车”动画效果研究...

    JingDong: When it render the "search result" page ,(every item has the picture) ,it will b ...

  9. 贝塞尔曲线之购物车动画效果

    Question 贝塞尔曲线是什么? 贝塞尔曲线可以做什么? 怎么做? What is it ? 贝塞尔曲线在百度定义是贝塞尔曲线(Bézier curve),又称 贝兹 曲线或贝济埃曲线,是应用于二 ...

最新文章

  1. 构建具有用户身份认证的 React + Flux 应用程序
  2. cpu使用时间百分比过高 排查
  3. python冒泡排序_5种python方法实现冒泡排序可视化:Bubble Sort Visualizer
  4. 10大最受欢迎的时间序列Github项目
  5. CentOS 和 Linux的关系?
  6. c语言点按钮弹窗口,【iOS】按钮点击弹窗
  7. Java 文件流操作.,互联网 面试官 如何面试
  8. 深圳市南山区派出所大全
  9. windows找不到文件gpedit.msc_u盘插入电脑在windows却找不到u盘的解决办法【详解】...
  10. C++ Iostreams 用法详解(二)标准输入输出
  11. linux_grep操作
  12. (每日一题 day 003 - 二维前缀和+动态规划) 1314. 矩阵区域和
  13. python天下无敌表情包_这套打遍天下无敌手的“算我输”表情包 从哪儿蹦出来的?...
  14. 神经网络与机器学习导言笔记——网络结构与知识表示
  15. 我的自定义Spring框架 | Spring核心功能结构
  16. element-ui 执行 npm run build:theme 报错 Replace Autoprefixer browsers option to Browserslist config....
  17. ICommand、ITool中调用要素闪烁/定位的方法
  18. C语言之基本算法15—前三位和后三位都是完全平方数的六位完全平方数
  19. php仿止伪装ip,php伪造ip与防止伪造ip方法解析
  20. 实验十三:PCF8591模数传感器-数模转换实验

热门文章

  1. Nginx 设置域名转发到指定目录
  2. 计算机任务栏出现地址框,电脑WIN 10系统怎么更改任务栏的显示位置
  3. TCP/IP协议族的网络层基础(1)——网段划分
  4. android studio开发app实例_基于Android输入法开发,制作一个微信斗图APP
  5. 【转】Mockito教程
  6. 大学生学游戏原画和3D建模哪个好
  7. Stash Save的用法
  8. golangORM框架gorm详解(超详细)
  9. (附源码)php+mysql+php沿河农产品特卖网站的设计与实现 毕业设计201524
  10. 520运维侠客行·北京站传统IT运维转型之道圆满落幕