android 仿美团购物车,Android仿美团、饿了购物车功能

效果截图

关键代码就是下面这个方法,可直接复制到你的项目,修改部分地方即可。

private void gouwuchedonghua() {

// 贝塞尔曲线起始点

int[] startPoint = new int[2];

// 贝塞尔曲线结束点

int[] endPoint = new int[2];

// 控制点

int[] relativeLayoutPoint = new int[2];

// 获取坐标点在页面布局中的位置

iv_jiahao.getLocationInWindow(startPoint);//起点 加号控件

gouwuche.getLocationInWindow(endPoint);//终点 购物车图片控件

rv_xq.getLocationInWindow(relativeLayoutPoint);//控制点 RecyclerView控件,如果加号位置是固定的一个,该控件可以换成整个布局的id

// 赋值贝塞尔曲线用到的点

PointF startF = new PointF();//起始点

PointF endF = new PointF();//结束点

PointF controllF = new PointF();//控制点

startF.x = startPoint[0];//起点横坐标

startF.y = startPoint[1] - relativeLayoutPoint[1];//起点纵坐标

endF.x = endPoint[0];//终点横坐标

endF.y = endPoint[1] - relativeLayoutPoint[1];//终点纵坐标

controllF.x = endF.x;

controllF.y = startF.y;

final ImageView imageView = new ImageView(this);

linearLayout_point.addView(imageView);

// imageView.setImageResource(R.mipmap.gouwuche);

Glide.with(this).load(Urls.BASE_URL + "/pro_photo/" + list.get(position).getImg()).error(R.mipmap.yuanxingtupian).into(imageView);

imageView.getLayoutParams().width = 64;//动画图片的宽

imageView.getLayoutParams().height = 64;//动画图片的高

imageView.setVisibility(View.VISIBLE);

imageView.setX(startF.x);

imageView.setY(startF.y);

// 估值器

ValueAnimator valueAnimator = ValueAnimator.ofObject(new BezierTypeEvaluator(controllF), startF, endF);

valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

// 获取曲线坐标

PointF pointF = (PointF) animation.getAnimatedValue();

imageView.setX(pointF.x);

imageView.setY(pointF.y);

}

});

valueAnimator.addListener(new Animator.AnimatorListener() {

@Override

public void onAnimationStart(Animator animation) {

}

@Override

public void onAnimationEnd(Animator animation) {

linearLayout_point.removeView(imageView);

}

@Override

public void onAnimationCancel(Animator animation) {

}

@Override

public void onAnimationRepeat(Animator animation) {

}

});

// 购物车图标从缩小到放大的实现 属性动画,缩放

ObjectAnimator objectAnimatorX = ObjectAnimator.ofFloat(gouwuche, "scaleX", 0.6f, 1.0f);

ObjectAnimator objectAnimatorY = ObjectAnimator.ofFloat(gouwuche, "scaleY", 0.6f, 1.0f);

// 加速掉落

objectAnimatorX.setInterpolator(new AccelerateInterpolator());

objectAnimatorY.setInterpolator(new AccelerateInterpolator());

//设置动画播放顺序

AnimatorSet animatorSet = new AnimatorSet();

animatorSet.play(objectAnimatorX).with(objectAnimatorY).after(valueAnimator);

// 设置动画时间

animatorSet.setDuration(1000);

// 开始动画

animatorSet.start();

}

// 估值器

public class BezierTypeEvaluator implements TypeEvaluator{

private PointF controllF;

public BezierTypeEvaluator(PointF controllF) {

this.controllF = controllF;

}

@Override

public PointF evaluate(float fraction, PointF startValue, PointF endValue) {

PointF pointCur = new PointF();

// 基于三阶贝塞尔曲线公式,计算出曲线坐标点

// B(t)=(1-t)²P0+2(1-t)P1+t²P2,t€[0,1]

pointCur.x = (1 - fraction) * (1 - fraction) * startValue.x + 2 * fraction * (1 - fraction) * controllF.x + fraction * fraction * endValue.x;

pointCur.y = (1 - fraction) * (1 - fraction) * startValue.y + 2 * fraction * (1 - fraction) * controllF.y + fraction * fraction * endValue.y;

return pointCur;

}

}

页面布局代码:

注意:布局最外层一定要用RelativeLayout(相对布局),我一开始用的LinearLayout(线性布局),每次动画执行购物车那一栏总是往起蹦跶,也可以尝试其它布局。

### 回答1: Android仿美团外卖源码是一款基于美团外卖的功能和界面进行开发的移动应用程序源代码。该源码提供了一套完整的应用程序框架和功能实现,供开发者参考和使用。 源码的主要功能包括用户登录注册、商家入驻与验证、商品浏览与搜索、购物车管理、订单提交与支付等。用户可以通过注册登录功能创建自己的账户,并且进行基本信息的管理。商家可以通过入驻与验证功能进行店铺的注册与认证,以便能够向用户展示自己的商品。 用户可以浏览商家提供的商品,并通过搜索功能查找自己感兴趣的商品。在商品详情页,用户可以查看商品的详细信息和评价,并选择加入购物车或直接购买。购物车管理功能允许用户查看自己已选中的商品,修改数量或删除商品。 当用户完成商品选择后,可以通过订单提交与支付功能来确认订单并进行支付。该功能通常会调用第三方支付平台,比如支付宝或微信支付,来完成支付过程。 除了上述核心功能,源码还提供了一些其他的辅助功能,比如地址管理、订单历史、评价管理等。这些功能提供了更好的用户体验和商家管理能力。 总而言之,Android仿美团外卖源码是一套具备基本外卖功能的应用程序源代码,为开发者提供了快速开发类似应用的能力,并且可以根据实际需求进行二次开发和定制。 ### 回答2: Android仿美团外卖源码是一种基于Android平台开发的应用程序源代码,旨在模仿美团外卖的功能和界面设计。通过使用这个源码,开发者可以构建出类似美团外卖的应用程序。 这个源码通常包含了以下主要功能模块:用户登录注册、附近商家展示、搜索商家/菜品、下单流程、支付功能、订单管理、评价功能等。 用户登录注册模块提供用户注册和登录的功能,用户可以通过手机号码或第三方登录方式进行注册和登录。 附近商家展示模块通过获取用户当前位置信息,展示附近的商家列表,用户可以根据自己的需求选择商家。 搜索商家/菜品模块允许用户按照商家名称、菜品关键字等进行搜索,从而快速找到想要的商家和菜品。 下单流程模块允许用户选择商家和菜品,添加到购物车,选择送货地址和支付方式,并提交订单。 支付功能模块提供了用户支付订单的功能,用户可以通过支付宝、微信等支付渠道进行支付。 订单管理模块允许用户查看自己的订单列表,包括已完成、待支付、待送货等状态的订单。 评价功能模块提供了用户对商家和菜品进行评价的功能,用户可以给商家和菜品打分并留下评价。 通过使用这个源码,开发者可以根据自己的需要进行定制,比如更改应用的主题色彩、商家和菜品的分类方式,或者添加一些新的功能模块。开发者还可以根据美团外卖的设计和用户体验理念,来提升自己应用的质量和用户满意度。 总之,Android仿美团外卖源码为开发者提供了一个快速开发类似美团外卖的应用程序的基础框架,降低了开发难度,节省了开发时间,同时也帮助开发者提供了一个优质的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值