*即刻点赞效果的实现
思路:每次点赞数字的动画效果是根据变化的数字去做动画,例如1001 点赞只有末尾的1变化了所以只有1这个数字会有动画效果
1099 如果点赞就会变成1100 变化了三个数字 099 就会变为100 才会有动画效果.*

我们把变化前的数字和变化后的数字的每一位保存到集合里面//变化前的文本集合private void setListBeforeText(long number){listBeforeText.clear();long textNumber = number;while (textNumber/10 != 0){listBeforeText.add((textNumber % 10)+"");textNumber = textNumber/10;}listBeforeText.add((textNumber % 10)+"");}//变化后的文本集合private void setListAfterText(long number){listAfterText.clear();long textNumber = number;while (textNumber/10 != 0){listAfterText.add((textNumber % 10)+"");textNumber = textNumber/10;}listAfterText.add((textNumber % 10)+"");}比较两个变化的文本集合找出变化的文本 和没有变化的文本
我们已1099->1100为例子
//找出变化的文本信息private String[] compareText(){setListBeforeText(beforeNumber);setListAfterText(number);StringBuilder sb = new StringBuilder();//找出不一样的文本 1099 -> 1100 就会保存100StringBuilder sbEquals = new StringBuilder();//找出一样的文本1099->1100 会保存1StringBuilder sb1 = new StringBuilder();//找变化文本初始数字的文本1099->1100 会保存099int count = listBeforeText.size() <= listAfterText.size() ? listBeforeText.size():listAfterText.size();for(int i = 0; i < count; i++){if(!listAfterText.get(i).equals(listBeforeText.get(i))){sb.append(listAfterText.get(i));sb1.append(listBeforeText.get(i));}else{sbEquals.append(listAfterText.get(i));}}for(int i = count; i < listAfterText.size(); i++){sb.append(listAfterText.get(i));}//以数组的形式返回1 100  099    // Log.d("LikeView",sbEquals.reverse().toString()+"  not equal: "+sb.reverse().toString());return new String[]{sbEquals.reverse().toString(),sb.reverse().toString(),sb1.reverse().toString()};}下面就开始绘制数字1099->1100 099->变化为100private void drawNumber(Canvas canvas){String[] strs = compareText();float width = 0;if(!TextUtils.isEmpty(strs[0])){//绘制没有变化的文本 1width = paint.measureText(strs[0],0,strs[0].length());canvas.drawText(strs[0],95,100,paint);}if(!TextUtils.isEmpty(strs[1])){//绘制变化后的文本100 高度根据属性动画 做动画效果canvas.drawText(strs[1]+"",95+width,currentTextY,paint);}if(!TextUtils.isEmpty(strs[2])){//绘制099 099会随着文本100的高度的变化而变化 移动出控件范围外不可见 作为一个顶起的效果if(isLike){canvas.drawText(strs[2]+"",95+width,currentTextY+120,paint);}else{canvas.drawText(strs[2]+"",95+width,currentTextY-120,paint);}}}

项目地址 https://github.com/gacmy/dianzan.git

即刻app 点赞效果实现相关推荐

  1. android仿小米运动,GitHub - luciferldy/Bnimation: 模仿即刻 App 点赞与数字跳动效果,模仿小米运动首页转圈圈的烟花效果...

    Bnimation 现阶段实现了模仿即刻点赞效果以及数字跳动增长,小米运动首页烟花转圈圈(•̀⌄•́)效果. 即刻 即刻的点赞效果 下面是我实现的效果(最下为 TextView 自带的展示数字效果) ...

  2. 即可app暂停服务?趁现在教你一步一步实现即刻点赞效果

    前言 前两天在热搜上看到即刻app暂停服务了,正好之前同事问我说实践中仿写即刻的点赞你有思路吗,你不实现一下?看到热搜后,我突然记起来这件事,于是准备开始:实现其实并不难,用到了位移,缩放,渐变动画和 ...

  3. Android自定义View教你一步一步实现即刻点赞效果

    前言 今天朋友看了HenCoder的自定义View后说,HenCoder对自定义View讲的不错.实践中仿写即刻的点赞你有思路吗,你不实现一下?二话不说,看了朋友手机效果,对他说:实现不难,用到了位移 ...

  4. 仿抖音 APP 视频切换和点赞效果

    code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者:Yun丶Lei 链接:https://www.jianshu.com/p/c43c75303174 声明:本文已 ...

  5. 抖音APP双击点赞效果实现

    相信大部分的同学都有刷抖音的经历吧,那么当你疯狂给小姐姐点赞的时候,有没有想过这个蹦出来的那些疯狂跳动的心心的是怎么实现的呢? 文末有github预览 分析: 效果特点: 1.双击屏幕任意位置,就生成 ...

  6. Android自定义实现点赞效果!

    前言 今天朋友看了HenCoder的自定义View后说,HenCoder对自定义View讲的不错.实践中仿写即刻的点赞你有思路吗,你不实现一下?二话不说,看了朋友手机效果,对他说:实现不难,用到了位移 ...

  7. 开源项目GoodView点赞效果

    点赞+1效果: GoodView方法: 使用GoodView的Demo: public class MainActivity extends Activity { @Overrideprotected ...

  8. 即刻App产品分析报告

    即刻产品分析报告 一.前期描述 即刻是一款基于兴趣的信息推送工具,支持iOS和Android平台. 操作方便.简洁.易上手,相比较于网易新闻.腾讯新闻.今日头条等新闻客户端,即刻更具有倾向性,它可根据 ...

  9. 《uni-app》uni-app实现疯狂点赞效果(一)

    这是一个没有套路的前端博主,热衷各种前端向的骚操作,经常想到哪就写到哪,如果有感兴趣的技术和前端效果可以留言-博主看到后会去代替大家踩坑的- 主页: oliver尹的主页 格言: 跌倒了爬起来就好- ...

最新文章

  1. 字节跳动扩招一万人?这也太香了!
  2. 通过Python的__slots__节省9GB内存
  3. jbpm4.4基础知识
  4. Flask实战2问答平台-发布问答功能完成
  5. linux-tar压缩与解压缩
  6. Oracle 12c因bug导致ORA-04031问题处理过程 | 云和恩墨技术通讯精选
  7. python定义16进制数组,十六进制字符串到python中的字节数组
  8. 六石管理学:考评不要与自己为难
  9. hadoop快速入门
  10. 三星s7562刷android+2,三星s7562 4.1.2 rom刷机包(精简省电版)
  11. uniapp-UI设计
  12. js根据出生年月获取年龄
  13. python与sap_在python中连接SAP HANA
  14. STM32驱动开发(二)--USB Device RNDIS虚拟网卡(USB2.0 基础概念讲解)
  15. linux 的常用命令---------第十三阶段(NFS与DHCP服务,scp用法)
  16. excel中文本格式如何批量转化成数字
  17. IBM咨询提出无边界企业,必须了解的数字化转型大趋势
  18. MATLAB小技巧(17)矩阵分析--灰色关联度计算
  19. 国家二级c语言程序设计技巧,国家二级C语言机考程序设计题技巧.doc
  20. 精益产品过程Step3:确认产品价值

热门文章

  1. node04-buffer
  2. 计算机计算合格不合格的公式,excel给成绩等级划分_如何使用Excel计算优秀、良好、合格、不合格的比例?...
  3. 更多推薦:蔡崇信、曾鳴、秦朔、闌夕、虞鋒、田溯寧
  4. 模块耦合名词解释_名词解释(软件工程)
  5. 时间戳与时间转换、js时间戳判定是 今天、昨天还是更前的日子
  6. 如何用深度学习框架PaddlePaddle实现智能春联
  7. 你公司到底需不需要引入实时计算引擎?
  8. linux redis查看密码,Redis集群设置密码和查看密码方法
  9. 网页中保存的密码查看方法
  10. 白皮书:OpenStack与容器的相遇相知(下)