• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 购物车动画(Android),购物车动画android

购物车动画(Android),购物车动画android

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android购物车动画,android购物车实现,android 购物车,android购物车源码,android购物车demo等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

购物车动画(Android),购物车动画android


购物车动画(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 + "");
    }
}

 

源码下载...

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 购物车动画(Android),购物车动画android

相关文章

  • 2017-05-26Android Butterknife 8.4.0 使用方法总结,butterknife8.4.0
  • 2017-05-26Shell 下求两个文件交集、并集和差集的办法
  • 2017-05-26android不同的按钮一起点击崩溃解决,android一起
  • 2017-05-26界面底部Tab实现,界面Tab实现
  • 2017-05-26Android开发10:传感器器及地图相关应用,android传感器
  • 2017-05-26不一样的Android选择器,简单方便,地址日期时间都好用!,android选择器
  • 2017-05-26Android 6.0 运行时权限处理完全解析,android6.0
  • 2017-05-26Android系统的五种数据存储形式(一),android数据存储
  • 2017-05-26Android接入微信支付完全解析,太全了~
  • 2017-05-26android Unable toexecute dex: method ID not in [0, 0xffff]: 65536问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 使用Eclipse开发Android源码
    • 学习笔记:下拉刷新的视图和图标的旋转,学习笔记视图
    • 对Android的恶意吐槽(勿看,有毒)
    • Android ViewPager使用详解
    • 单机搭建Android开发环境(一),单机搭建android开发
    • arcgis andriod 加载影像,arcgisandriod
    • 7.1.1 Android网络编程要学的东西与Http协议学习
    • Android中使用ImageViewSwitcher实现图片切换轮播导航效果,
    • 安卓高级组件-----图像切换器,安卓-----切换器
    • build.gradle文件的注释,build.gradle注释

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有