Android仿微信打开红包动画(逐帧动画)

Android仿微信红包 七夕已经过完了,啊啊啊啊,又是一个人。无聊看了看之前写的小demo,所以想发个博客记录一下~ 阅读详情

本文转自:http://www.cnblogs.com/whoislcj/p/5733740.html

Frame Animation(逐帧动画):

       逐帧动画(Frame-by-frame Animations)从字面上理解就是一帧挨着一帧的播放图片,就像放电影一样。和补间动画一样可以通过xml实现也可以通过java代码实现。接下来借助目前项目中的一个开奖的动画来总结如何使用。实现效果如下:

具体实现过程:

1.)在res/drawable目录下一个文件lottery_animlist.xml,内容如下:
复制代码
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">

    <item
        android:drawable="@mipmap/lottery_1"
        android:duration="200" />
    <item
        android:drawable="@mipmap/lottery_2"
        android:duration="200" />
    <item
        android:drawable="@mipmap/lottery_3"
        android:duration="200" />
    <item
        android:drawable="@mipmap/lottery_4"
        android:duration="200" />
    <item
        android:drawable="@mipmap/lottery_5"
        android:duration="200" />
    <item
        android:drawable="@mipmap/lottery_6"
        android:duration="200" />

</animation-list>
复制代码

根节点是animation-list(动画列表),里面有一个或者多个item节点组成,oneshot属性表示是否只播放一次,true表示只会播放一次,false表示一直循环播放,内部用item节点声明一个动画帧,android:drawable指定此帧动画所对应的图片资源,android:druation代表此帧持续的时间,整数,单位为毫秒。

2.)用ImageView控件作为动画载体来显示动画
复制代码
 <ImageView
   android:id="@+id/animation_iv"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
   android:layout_margin="10dp"
   android:src="@drawable/lottery_animlist" />
复制代码

这个时候我们运行一下,发现动画没有运行而是停留在第一帧,那是因为AnimationDrawable播放动画是依附在window上面的,而在Activity onCreate方法中调用时Window还未初始化完毕,所有才会停留在第一帧,要想实现播放必须在onWindowFocusChanged中添加如下代码:

imageView.setImageResource(R.drawable.lottery_animlist);
AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getDrawable();
animationDrawable.start();

如果想要停止播放动画可以调用AnimationDrawable的stop方法

  imageView.setImageResource(R.drawable.lottery_animlist);
  AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getDrawable();
  animationDrawable.stop();
3.)纯Java代码实现方式
复制代码
AnimationDrawable anim = new AnimationDrawable();
    for (int i = 1; i <= 6; i++) {
    int id = getResources().getIdentifier("lottery_" + i, "mipmap", getPackageName());
    Drawable drawable = getResources().getDrawable(id);
    anim.addFrame(drawable, 200);
    }
    anim.setOneShot(false);
    imageView.setImageDrawable(anim);
    anim.start();
复制代码
4.)AnimationDrawable 几个常见的api
  • void start() - 开始播放动画

  • void stop() - 停止播放动画

  • addFrame(Drawable frame, int duration) - 添加一帧,并设置该帧显示的持续时间

  • void setOneShoe(boolean flag) - false为循环播放,true为仅播放一次

  • boolean isRunning() - 是否正在播放

总结:

   Frame Animation(逐帧动画)相对来说比较简单,但是在实际开发中使用的频率还是比较高的。希望以这个小例子能够掌握逐帧动画,但是逐帧动画只能实现比较小的动画效果,如果复杂而且帧数比较多的动画不太建议使用逐帧动画,一方面是因为会造成OOM,另一方面会显得很卡,如果真是超级复杂的动画的话建议选择双缓冲绘制View来实现。

android 仿QQ五毛特效之查看红包领取详情界面,android系统开发面试 WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); DisplayMetrics outMetrics = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(outMetrics); int height = outMetrics.heightPixels; return height; } 需要写一个自定义的ScrollVie 阅读详情

相关推荐

安卓微信自动抢红包插件优化和实现

转载请注明作者AndroidMSky和链接http://blog.youkuaiyun.com/AndroidMsky/article/details/53490459 又是兴趣系列 网上有很多自动强红包的例子和代码,笔者也是做了一些优化。 先说说自己的两个个优势 1.可以在聊天界面自动强不依赖于通知栏推送 2.可以在屏幕熄灭的时候的时候点亮屏幕自动抢(目前只测过flyme) 先上图:代码传送门:

AndroidMsky的博客 6万+

android仿微信红包动画,如何在Android中实现一个硬币转动微信红包动画效果

如何在Android中实现一个硬币转动微信红包动画效果发布时间:2021-02-23 17:03:43来源:亿速云阅读:105作者:Leah本篇文章给大家分享的是有关如何在Android中实现一个硬币转动微信红包动画效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1,在XML文件中定义动画:步骤如下:①新建 Android 项目②在...

weixin_34231219的博客 734

使用AutoJs实现微信抢红包

先来看一下演示效果 (此处需要一个处理过的视频) 需要准备的工具有:AutoJs,VSCode,一部手机 1. 首先使用AutoJs的布局设置查找红包的Id 可以看出来红包的id为“aag” 关于这个红包的id请以自己看到的为准 因为我在上午写的时候这里的id还是“an3”,到下午的时候就变成“aag”了 然后在VSCode里编写代码 var redEnvelopes = id("aag").find(); 返回一个id为aag的redEnvelopes集合 此处注意..

Bole_WL的博客 5663

uniapp仿微信红包打开动画效果

uniapp仿微信红包打开动画效果

叶子CMS 2187

微信抢红包插件

微信抢红包插件 下载地址:https://pan.baidu.com/s/1HJSI…提取码:ntuw 这个Android插件可以帮助你在微信群聊抢红包时战无不胜。当检测到红包时,插件会自动点击屏幕,人工点击的速度无法比拟。 实现原理 1. 抢红包流程的逻辑控制 这个插件通过一个Stage类来记录当前对应的阶段。Stage类被设计成单例并惰性实例化,因为一个Service不需要也不应该处...

weixin_29417899的博客 3874

android微信的抢红包插件

前言  之前看到了微信抢红包的插件,觉得这个功能实在强大了,这和之前我想实现的模拟点击事件基本相似,可以完美的触发一个view的点击事件,当然静默安装的原理也和抢红包的原理是一样的。  小米有开源小米的抢红包的demo,之后有童鞋在此之上增加了自己的逻辑,使其完善。现在为了学习,我也加入抢红包的demo大军哈哈,主要在于学习。原理  原理主要是通过辅助功能AccessibilityService来完

徒步行走于未知,爱上呼吸空气 4567

常用于优惠劵的动画折叠----Android篇

最近又回归安卓了,写了一阵子java后台和前端vue,最喜欢的还是我的android 话不多说,今天简单写点分享给朋友们 上图: 介绍: 顶部是个include 底部是listview <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.and......

qq_35874340的博客 868

微信抢红包

安卓微信抢红包用户速看! ..

孙叫兽的博客 1万+

android仿微信红包动画,Android仿微信打开红包动画(逐帧动画)

Frame Animation(逐帧动画):逐帧动画(Frame-by-frameAnimations)从字面上理解就是一帧挨着一帧的播放图片,就像放电影一样。和补间动画一样可以通过xml实现也可以通过java代码实现。接下来借助目前项目中的一个开奖的动画来总结如何使用。实现效果如下: 具体实现过程:1.)在res/drawable目录下一个文件lottery_animlist.xml,内容如下...

weixin_35330796的博客 580

Kotlin实现仿微信红包打开动画效果完整方案

前面所有的动画都是“战术级”的精彩操作,但如果没有一个强有力的“指挥部”,很容易陷入混乱。这个指挥部就是我们的自定义ViewGroup——。你以为我们在讲动画技术?其实我们在谈用户体验。一个好的动效,不是为了炫技,而是为了让用户感受到:反馈感:“我点到了!期待感:“接下来会发生什么?满足感:“哇,真有意思。微信红包的成功,一半在算法,一半在体验。而体验的核心,正是这些精心打磨的细节。

weixin_32102617的博客 1129

Android仿硬币转动微信红包动画效果

项目需要研究了一下微信红包动画,即硬币转动的效果,原理其实就是三张不同角度的图片利用AnimationDrawable帧动画进行播放。下面通过本文给大家分享Android仿微信红包动画效果,感兴趣的朋友一起看看吧

Android 仿微信红包动画 平移动画

Android 仿微信红包动画 平移动画 先看效果图: 简单思路: 先找好素材,一张红包封面和 “开”这个图片,先用ps将红包图片P成两部分,两个椭圆的样子。“开”要有不同角度的,因为要由帧动画完成。开完之后背景设个随机数。红包封面可以用ps软件p出来,用椭圆选框工具即可。 素材: 目录图: 详细完全代码: 1. xml开动画——用帧动画完成。 这节课有详细讲解 mooc讲解的视频教程保证能听懂,简单易学 <?xml version="1.0" encoding="utf-8"?> &

weixin_45632095的博客 897

Android仿打开微信红包动画效果实现代码

主要介绍了Android仿打开微信红包动画效果实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下

仿微信打开红包旋转动画

感觉现在好多人都在说什么安卓快凉了,工作越来越难找了。又是说什么程序员中年危机啥的,为啥我这年近30的老农根本没有这种感觉,反倒觉得那些贩卖焦虑的都是瞎j8扯谈。当然,职业危机意识确实是要有的,但根本没到那种草木皆兵的地步好吗?Android凉了都是弱者的借口和说辞。虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。

2401_84132496的博客 1122

Xilinx的DDR4 IP

Xilinx的DDR4 IP

weixin_39896700的博客 4458

如何在INCA中修改标定量的初始值,并刷回控制器

测试过程中,有些时候,标定量来不及修改,这就需要修改标定量的初始值了,又不想打开模型重新编译,因此直接在INCA中修改,然后再刷回控制器,就成了最佳选择,之前也学过,长时间不用,忘记怎么搞了,最近又用到了,这次记录一下,以后用到的时候,就不用在网上东翻西找了。截止到2023年11月24日,共找到了两种方法可以实现修改。

weixin_43406519的博客 4200

android仿微信红包动画,Android仿打开微信红包动画效果实现代码

首先看下效果:实现原理:准备3张不同角度的图片,通过AnimationDrawable帧动画进行播放即可代码实现:1、编写动画xml文件:根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画 根标签下,通过item标签对动画中的每一个图片进行声明android:duration 表示展示所用的该图片的时间长度 ,可通过该参数来设置图片...

weixin_33270920的博客 465

一次渗透测试引发的Json格式下CSRF攻击的探索

一次渗透测试引发的Json格式下CSRF攻击的探索

weixin_52501704的博客 1050

android 按钮变形动画,Android仿硬币转动微信红包动画效果

项目需要研究了一下微信红包动画,即硬币转动的效果,原理其实就是三张不同角度的图片利用AnimationDrawable帧动画进行播放,在参考了案例之后,给自己记录一下完成的过程。1,在XML文件中定义动画:步骤如下:①新建 Android 项目②在drawable目录中新建一个anim.xml(注意文件名小写)根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为fa...

weixin_30043999的博客 464

Megatron-LM深度解析:万亿参数大模型的3D并行训练之道

训练框架,采用创新的"层内模型并行"设计,通过将Transformer层的计算拆分到多个GPU上并行执行,显著提升训练效率。该系统支持3D并行策略(数据并行、张量并行、流水线并行)和序列并行等新技术,成功应用于训练5300亿参数的MT-NLG模型。相比DeepSpeed、TPU GSPMD等框架,Megatron-LM在NVIDIA GPU上展现出卓越性能,并与TensorRT等工具深度集成,形成从训练到部署的完整解决方案。该项目持续演进,已成为大模型训练的重要基准。

数据与算法架构提升之路专栏 2091

【Bug已解决】Context window exceeded / Token limit reached — Claude Code 上下文窗口超限解决方案

Claude Code 长会话中报上下文窗口/Token 超限,本质是对话历史、文件内容、工具结果累积超过 200K 上限。文中给出 /clear、/compact、分批读大文件、限制工具输出、配置 autoCompact 等完整方案。

一键难忘的博客 6728
上一篇: Eclipse使用Butterknife的相关配置
下一篇: Axure8.0制作选择左边菜单栏,右边显示相关内容案例
FC_三生
博客等级 码龄12年 7粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值