前言:当我们写商城类的项目的时候,一般都会有加入购物车的功能,加入购物车的时候会有一些抛物线动画,最近做到这个功能,借助别人的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小时内与您取得联系。