全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android实现购物车添加物品的动画效果

前言:当我们写商城类的项目的时候,一般都会有加入购物车的功能,加入购物车的时候会有一些抛物线动画,最近做到这个功能,借助别人的demo写了一个。

效果:

开发环境:AndroidStudio2.1.2+gradle-2.10

涉及知识:1.沉浸式状态栏,2.单位精度计算(价格),3.List之Iterator。

部分代码:

public class MainActivity extends AppCompatActivity implements FoodAdapter.FoodActionCallback {
 private ListView listView;
 private TextView goods_all_pricetv;
 private TextView good_numtv;
 private List<FoodModel> list;
 private List<FoodModel> selectList = new ArrayList<>();
 private FoodAdapter adapter = null;
 @Override
 protected void onCreate(@Nullable final Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 //沉浸式状态栏
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
 //透明状态栏
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
 //透明导航栏
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
 }
 listView = (ListView) findViewById(R.id.listView);
 goods_all_pricetv = (TextView) findViewById(R.id.goods_all_pricetv);
 good_numtv = (TextView) findViewById(R.id.good_numtv);
 findViewById(R.id.goods_submit_tv).setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
 if (null != selectList && selectList.size() > 0) {
 Toast.makeText(MainActivity.this, "你一共加入购物车" + good_numtv.getText() +
 "份商品,总价格为:" + goods_all_pricetv.getText(), Toast.LENGTH_SHORT).show();
 } else {
 Toast.makeText(MainActivity.this, "你的购物车为空", Toast.LENGTH_SHORT).show();
 }

 }
 });
 initData();
 }
 private void initData() {
 list = AppConfig.factoryFoods();
 adapter = new FoodAdapter(this, list, this);
 listView.setAdapter(adapter);
 }
 //添加商品动画
 @Override
 public void addAction(View view, int item) {
 ShoppingCartAnimationView shoppingCartAnimationView = new ShoppingCartAnimationView(this);
 int position[] = new int[2];
 view.getLocationInWindow(position);
 shoppingCartAnimationView.setStartPosition(new Point(position[0], position[1]));
 ViewGroup rootView = (ViewGroup) this.getWindow().getDecorView();
 rootView.addView(shoppingCartAnimationView);
 int endPosition[] = new int[2];
 good_numtv.getLocationInWindow(endPosition);
 shoppingCartAnimationView.setEndPosition(new Point(endPosition[0], endPosition[1]));
 shoppingCartAnimationView.startBeizerAnimation();
 FoodModel model = list.get(item);
 model.setNum(model.getNum() + 1);
 adapter.notifyDataSetChanged();
 calculatePrice();
 }
 //减少商品
 @Override
 public void reduceGood(int position) {
 FoodModel model = list.get(position);
 model.setNum(model.getNum() - 1);
 adapter.notifyDataSetChanged();
 calculatePrice();
 }
 //购物车份数+总价格计算
 private void calculatePrice() {
 selectList.clear();
 double price = 0;
 int num = 0;
 Iterator<FoodModel> iterator = list.iterator();
 while (iterator.hasNext()) {
 FoodModel model = iterator.next();
 if (model.getNum() != 0) {
 selectList.add(model);
 price += model.getPrice() * model.getNum();
 num += model.getNum();
 }
 }
 goods_all_pricetv.setText("¥" + adapter.priceResult(price) + "元");
 good_numtv.setText(num + "");
 }
}

源码下载

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# android  # 购物车动画  # 购物车添加商品动画  # 购物车添加商品  # Android实现购物车功能  # Android实现的仿淘宝购物车demo示例  # Android实现仿淘宝购物车增加和减少商品数量功能demo示例  # Android中实现淘宝购物车RecyclerView或LIstView的嵌套选择的逻辑  # Android把商品添加到购物车的动画效果(贝塞尔曲线)  # Android实现简单购物车功能  # Android仿外卖购物车功能  # Android仿饿了么加入购物车旋转控件自带闪转腾挪动画的按钮效果(实例详解)  # Android制作简单的普通购物车  # Android实现二级购物车的全选加反选、总价功能  # 购物车  # 状态栏  # 会有  # 写了  # 当我们  # 源码下载  # 为空  # 份数  # list  # gt  # null  # adapter  # ArrayList  # selectList  # goods_all_pricetv  # TextView  # listView  # FoodModel  # lt  # good_numtv 


相关文章: 宝塔面板创建网站无法访问?如何快速排查修复?  如何通过虚拟主机快速搭建个人网站?  建站之星安装提示数据库无法连接如何解决?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  建站主机空间推荐 高性价比配置与快速部署方案解析  盐城做公司网站,江苏电子版退休证办理流程?  魔方云NAT建站如何实现端口转发?  建站主机是否属于云主机类型?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  大学网站设计制作软件有哪些,如何将网站制作成自己app?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何在云主机快速搭建网站站点?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  如何解决ASP生成WAP建站中文乱码问题?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何用狗爹虚拟主机快速搭建网站?  如何通过VPS建站无需域名直接访问?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  电商网站制作公司有哪些,1688网是什么意思?  如何快速打造个性化非模板自助建站?  如何在云虚拟主机上快速搭建个人网站?  SQL查询语句优化的实用方法总结  如何通过IIS搭建网站并配置访问权限?  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何确保FTP站点访问权限与数据传输安全?  如何自定义建站之星模板颜色并下载新样式?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  h5网站制作工具有哪些,h5页面制作工具有哪些?  建站之星如何实现网站加密操作?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  建站之星导航如何优化提升用户体验?  如何高效生成建站之星成品网站源码?  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何在七牛云存储上搭建网站并设置自定义域名?  如何用VPS主机快速搭建个人网站?  如何选择最佳自助建站系统?快速指南解析优劣  专业公司网站制作公司,用什么语言做企业网站比较好?  Swift中switch语句区间和元组模式匹配  如何快速上传建站程序避免常见错误?  香港服务器部署网站为何提示未备案?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  电商网站制作价格怎么算,网上拍卖流程以及规则?  建站VPS能否同时实现高效与安全翻墙?  Python如何创建带属性的XML节点  如何在IIS服务器上快速部署高效网站?  文字头像制作网站推荐软件,醒图能自动配文字吗?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  招贴海报怎么做,什么是海报招贴?  如何通过FTP空间快速搭建安全高效网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。