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

转载请注明出处,蟹蟹!

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python里的shell是什么_python中的shell操作

http://blog.csdn.net/meng_tianshi/article/details/6682317 首先介绍一个函数: os.system(command) 这个函数可以调用shell运行命令行command并且返回它的返回值。试一下在python的解释器里输入os.system(”ls-l”),就可以看到”ls”列出了当前目录下的…

基于android 定位系统,基于Android平台定位系统设计和实现

2 0 1 3牟第 1 2期文章编号: 1 0 0 9— 2 5 5 2 ( 2 0 1 3 ) 1 2— 0 1 8 7— 0 4 中图分类号: T P 3 1 6 . 8 9 文献标识码: A基于 A n d r o i d平台定位系统设计和实现李瑞宣,王山东,徐志远,王伶俐(河海…

集合竞价如何买入_集合竞价买入法 如何在集合竞价中买入股票?

集合竞价买入法、 如何在集合竞价中买入股票?要想集合竞价买入涨停板,要做到如下3点:快、准、狠!文章将为你盘点这几个方法的具体做法,希望对股民有所帮助。快:就是利用9:15-9:25这1…

python 公众号爬虫_python_爬虫_微信公众号抓取

importrequests,pymysqlimportjson,jsonpath,random,re,time,datetime,os,imghdrfrom lxml importetreefrom selenium importwebdriverfrom urllib importrequestimportssl ssl._create_default_https_contextssl._create_unverified_context注意点:如果同一时间内刷…

开发工评价程师自我_常见“自我评价”写作范例

“自我评价”在找工作的时候是一个非常重要的内容,优秀的“自我评价”不仅就可以让别人对你有一个全面的认识,更可以通过寥寥数语就让别人对你产生浓厚的兴趣,让你的求职之路事半功倍。但是怎么写“自我评价”,却是让很多人犯愁的…

android调用服务器端口,更改运行adb服务器的默认端口(即5037)

使用环境variablesANDROID_ADB_SERVER_PORT选择端口。以下在bash下工作:$ export ANDROID_ADB_SERVER_PORT12345 $ adb start-server * daemon not running. starting it now on port 12345 * * daemon started successfully * $ adb devices List of devices attac…

visual studio 调试python_Visual Studio Code Python 调试设置

很意外Visual Studio Code居然支持Python代码的断点调试。一起来配置一下。工具/原料 Visual Studio Code 1.1 Python 2.7.11 方法/步骤 1 首先,当然是要先安装插件,配置Python环境。这个大家看这个文章 2 环境配置完成后,我们点击调试按钮&a…

cad图纸比对lisp_CompareDWG|CAD图纸比较软件(CompareDWG)下载v2018 官方版 - 欧普软件下载...

CompareDWG是一款免费的CAD图纸比较软件,可以帮助用户快速找到两个dwg图像之间的差异,使用不同的颜色进行标注,生成详细的报表,相比人工查找效率更高,准确率也高,支持几乎所有的autocad版本,适用…

android 电话 快捷键,Android studio开发常用快捷键详解

最常用快捷键1.Ctrl+E可以显示最近编辑的文件列表2.Shift+Click(点击)可以关闭文件3.Ctrl+[或者ctrl]可以跳到大括号的开头结尾4.Ctrl+Shift+Backspace可以跳转到上次编辑的地方5.Ctrl+F12可以显示当前文件…

leetcode c程序总提示主函数_Matlab系列之函数嵌套

昨天的那一篇讲的几个函数,不知道你们理解的如何,是否懂得怎么去使用了,如果还没懂,一定要再多看几遍,并且去在软件上进行实操,今天的话,将要介绍一下函数的嵌套,不过在正式讲嵌套之…

alibab仓库 idea_01.微服务架构编码、构建

教学视频传送:springBoot和springCloud的版本选型https://start.spring.io/actuator/info查看json串返回结果这就是我们的选型依据本次开发选用版本如下:cloud : Hoxton.SR1boot : 2.2.2.RELEASEcloud alibaba : 2.1.0.RELEASEjava …

华为手机出现android啥意思,传华为正研发手机系统,如果脱离安卓系统,还有啥能阻止华为前进...

原标题:传华为正研发手机系统,如果脱离安卓系统,还有啥能阻止华为前进自从国产手机正式进入了智能手机时代之后,中华酷联的中兴、酷派、联想早已经被华为甩在了身后。虽然现在国产手机已经呈现出华为、小米、OPPO、vivo四足鼎立的…

sql 数据库前两列值乘_Sql语句常用关键字

最近接触sql比较多,发现自己已经遗忘的也差不多,要用到的时候迟迟拿不出来,今天开始会在知乎上纪录一些sql语句学习的内容,内容重在说明查询语句的用法。一、sql查询语句的初始介绍1、查询语句的一般写法:select .....…

kayui进行添加_关于layui 实现点击按钮添加一行(方法渲染创建的table)

目标:layui 实现点击按钮添加一行解决方案:方案1、table 是用转换静态表格的方式创建的,写一个button,每次点击按钮,就添加一个 标签;方案2、table 是用方法渲染的方式创建的,写一个button,每次…

android怎样添加图片锐化功能,如何在android处理图片(图像二值化锐化转换格式).doc...

如何在android处理图片(图像二值化锐化转换格式)链接:如何在android处理图片( 图像二值化、锐化、转换格式)/thread-36559-1-1.htmlpackage net.wealthgod.client.center.ocr;import java.awt.Graphics2D;import java.awt.color.ColorSpace;import java.awt.geom.Af…

python的open方法_Python os.open() 方法

Python os.open() 方法 概述 os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777。 语法 open()方法语法格式如下: os.open(file, flags[, mode]); 参数 file -- 要打开的文件 flags -…

postforobject 设置代理_OAuth2RestTemplate中的代理配置

我需要使用由OAuth2保护的API.为此我使用OAuth2RestTemplate.但我得到以下错误:java.net.ConnectException: Connection timed out: connect由于代理问题,这种情况正在发生.我知道如何在RestTemplate中设置代理:SimpleClientHttpRequestFactory clientHt…

谷歌fuchsiaos和华为鸿蒙,华为鸿蒙最大的对手现身!谷歌正式推送Fuchsia OS,或替代安卓...

原标题:华为鸿蒙最大的对手现身!谷歌正式推送Fuchsia OS,或替代安卓可能是看到了华为鸿蒙的进展神速,谷歌在近日也正是开始了Fuchsia OS的推送。5月25日,谷歌Fuchsia OS项目负责人在社交媒体上公开喊话:“今…

python编码规范utf8还是gbk还是ask_彻底搞懂 Python 编码

因为中文的特殊编码,导致 Python2 和 Python3 使用过程中的各种编码问题,如果不清楚其中的关联关系,那么这就一直是个大坑,不是懵逼就还是懵逼,所以就目前碰到的情况彻底梳理下 Python2 和 Python3 中编码的关系和区别…

k8s 命令 重启_k8s 常用命令

# 启动etcd存储服务service etcd start# 运行mastercd /opt/kubernetes/bin./apiserver.sh 192.168.220.135 http://192.168.220.135:2379./scheduler.sh 192.168.220.135./controller-manager.sh 192.168.220.135# 运行node(需要先禁用swap交换缓存,运行命令 swapo…