android长按加入购物车,《Android APP可能有的东西》之UI篇:加入购物车动画

很多电商app的加入购物车的动作会要求加上动画效果:飞进购物车,想来也合理,在listview界面时商品快速加入购物车,一直toast用户加入成功好像不太正常,所以添加一个动画,用户自然就懂了,而且也挺美观。这里记录一个这样的demo,demo里面的注释足够详细,这里也会给出部分代码说明。

上效果

c92a89359f53

动画效果

上说明

使用方法1:

如果现成的效果还不够自己想要的效果,下载demo,把demo中library中的两个类拷贝出来放进自己的view文件夹,然后直接去修改它们,修改成满足自己需求的效果。

使用方法2:

如果觉得现成的效果足够满足自己需求了直接使用gradle依赖的方式:

1.Add it in your root build.gradle at the end of repositories:

allprojects {

repositories {

...

maven { url "https://jitpack.io" }

}

}

2.Add the dependency:

dependencies {

compile 'com.github.paradoxie:ShopAnimDemo:0.1'

}

自定义说明:

//启动动画

public void startAnim(View v) {

int[] end_location = new int[2];

int[] start_location = new int[2];

v.getLocationInWindow(start_location);// 获取购买按钮的在屏幕的X、Y坐标(动画开始的坐标)

car.getLocationInWindow(end_location);// 这是用来存储动画结束位置,也就是购物车图标的X、Y坐标

buyImg = new ImageView(this);// buyImg是动画的图片

buyImg.setImageResource(R.mipmap.sign);// 设置buyImg的图片

// mAniManager.setTime(5500);//自定义时间

mAniManager.setAnim(this, buyImg, start_location, end_location);// 开始执行动画

mAniManager.setOnAnimListener(new AniManager.AnimListener() {

@Override

public void setAnimBegin(AniManager a) {

//动画开始时的监听

}

@Override

public void setAnimEnd(AniManager a) {

//动画结束后的监听

num += 5;

buyNumView.setText(num + "");

buyNumView.show();

}

});

}

写一个点击事件中可直接调用的方法,内部实现为动画的配置,包括:动画的起点,即点击view的位置;动画的终点,即购物车图标的位置;界面上飞来飞去那个小图标;动画的持续时间;然后调用方法开始执行动画。这里给出了动画开始和结束的监听回调,因为一般在结束之后是需要修改一些显示状态的,具体查看demo实现效果。

另外,在图标之上有一个数字标签BadgeView,使用了自定义控件实现,使用时具体配置:

buyNumView = new BadgeView(this, car);//把这个数字标签放在购物车图标上

buyNumView.setBadgePosition(BadgeView.POSITION_CENTER);//放在图标中心

buyNumView.setTextColor(Color.WHITE);//数字颜色

buyNumView.setBadgeBackgroundColor(Color.BLUE);//背景颜色

buyNumView.setTextSize(9);//数字大小

注释给得十分清楚了,可去修改自己想要的效果。具体的使用配置只有这些,很容易理解哇

源码中获取ViewGroup时使用的是Activity.getWindow().getDecorView(),所以理论上支持所有activity和fragment中实现此效果,具体木有测试,如果有问题可以根据情况修改。本人正式项目中就是在fragment实现这个效果,虽然不是用的这个依赖库。

【UI篇】扩展阅读

本文作者:paradoxie

个人主页:谢盒盒的小黑屋,不止说技术

简书地址:简书主页,专注说技术

github地址:paradoxie

转载请注明出处,蟹蟹!

-------我的梦想真的是做一条咸鱼!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值