左右晃动的效果: (这边显示没那么流畅)

一、续播  (不知道取什么名字好,就是先播放动画A, 接着播放动画B)

有两种方式。

第一种,分别动画两个动画,A和B, 然后先播放动画A,设置A 的 AnimationListener。当onAnimationEnd触发(即A播放完毕)时,开始播放B。

        animation1.setAnimationListener(new Animation.AnimationListener() {   @Override   public void onAnimationStart(Animation animation) {       }      @Override   public void onAnimationRepeat(Animation animation) {   }      @Override   public void onAnimationEnd(Animation animation) {    animation2.start();   }  });

第二种,写一个动画集AnimationSet,在其中定义动画A和B,为动画B设置startOffset, 其值就是前一个动画播放的所需的时间。

这边举一个例子,动画A是 透明度从 0.1 到 1.0 , 动画B是透明度从1.0到0.1,  使用下面这个动画集你就可以看到整个变化过程。

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha     android:fromAlpha="0.2"     android:toAlpha="1.0"     android:duration="3000"     />    <alpha        android:startOffset="3000"      android:fromAlpha="1.0"     android:toAlpha="0.2"     android:duration="3000"     /></set>

其中android:startOffset="3000"  表示延迟3秒后再执行。 如果去掉其中的 android:startOffset="3000" , 你就什么效果也看不到了。 因为两个动画会同时播放。

二、循环

有时候,我们可能需要实现一个图片不停闪烁的功能(比如天气预报中的紧急警报功能),  或者有的时候我们需要实现图片左右晃动,都需要循环动画来实现。

同样,也有两种办法。

第一种,设置两个动画A 和 B, 动画A 是透明度 0 -1, 动画B是1 - 0, 然后对这两个动画都进行监听, A 结束执行B, B结束执行A.. 无限循环...

第二种,利用Animation的setRepeatCount、setRepeatMode来实现动画循环。

比如闪烁(透明度亮 -> 暗, 暗->亮,如此循环)

        //闪烁        AlphaAnimation alphaAnimation1 = new AlphaAnimation(0.1f, 1.0f);        alphaAnimation1.setDuration(3000);        alphaAnimation1.setRepeatCount(Animation.INFINITE);        alphaAnimation1.setRepeatMode(Animation.REVERSE);        iv.setAnimation(alphaAnimation1);        alphaAnimation1.start();

alphaAnimation1.setRepeatCount(Animation.INFINITE); 表示重复多次。 也可以设定具体重复的次数,比如alphaAnimation1.setRepeatCount(5);

alphaAnimation1.setRepeatMode(Animation.REVERSE);表示动画结束后,反过来再执行。 该方法有两种值, RESTART 和 REVERSE。 RESTART表示从头开始,REVERSE表示从末尾倒播。

懒得屏幕录像了,类似下面的效果:

再比如左右摇摆

        //摇摆        TranslateAnimation alphaAnimation2 = new TranslateAnimation(150f, 350f, 50, 50);        alphaAnimation2.setDuration(1000);        alphaAnimation2.setRepeatCount(Animation.INFINITE);        alphaAnimation2.setRepeatMode(Animation.REVERSE);        iv.setAnimation(alphaAnimation2);        alphaAnimation2.start();

其中 iv 是一个ImageView。

好了,就写这么多。

动画 Animation 之 闪烁 左右摇摆 上下晃动等效果相关推荐

  1. java上下左右晃动_动画(Animation) 之 (闪烁、左右摇摆、上下晃动等效果)

    左右晃动的效果: (这边显示没那么流畅) 一.续播  (不知道取什么名字好,就是先播放动画A, 接着播放动画B) 有两种方式. 第一种,分别动画两个动画,A和B, 然后先播放动画A,设置A 的 Ani ...

  2. Android动画(图片闪烁、左右摇摆、上下晃动等效果)

    Android动画(图片闪烁.左右摇摆.上下晃动等效果) 通常我们需要一个item连续的播放某一段动画或者循环的执行某个动画,这里我们就可以用到一下技巧. 一.续播 (不知道取什么名字好,就是先播放动 ...

  3. 安卓动画全解:补间动画(视图动画)、布局动画、属性动画、逐帧动画。动画Animation属性、Alpha属性、Scale属性、Translate属性、Rotate属性,动画集AnimationSet

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓动画全解:补间动画(视图动画).布局动画.属性动画.逐帧动画. 主要内容包含:动画Animation属性.Alpha属性.Scale属性.Tran ...

  4. css动画定义,css3的动画(animation)属性的详解(附代码)

    本篇文章给大家带来的内容是关于css3的动画(animation)属性的详解(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. css3动画(animation)具有以下属性: ...

  5. 精灵动画Animation对话框组成Idle动画的各精灵

    精灵动画Animation对话框组成Idle动画的各精灵 场景中已经添加了精灵,现在是时候让让它动起来了.读者也许已经从精灵图集中,各精灵的命名中看出来了,这个精灵一共有两种动画状态:Idle(空闲) ...

  6. css3动画-animation

    css3动画-animation animation 属性是 8 个属性的简写: 你是否被gif loading加载太慢或有锯齿而感到困扰? 项目中,当页面内容或图片比较多或在加载一些比较大的数据接口 ...

  7. 十四、CSS 3新特性详解(二)——2D转换(transform)、动画(animation)、动画序列

    HTML5 第二天 一.rotate 2d旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转 使用步骤: 给元素添加转换属性 transform 属性值为 rotate(角度) 如 transfor ...

  8. 幻灯片(基于CSS3动画animation)

    效果预览: 实现思路: 类似于:h5+css3+js之移动端轮播图 将存放所有图片的容易按照一定的时间在X轴进行移动,但是此处使用的是纯CSS实现,利用动画animation定义每一帧的动画,在每一帧 ...

  9. 小程序动画animation向左移动效果

    今天在家做一个私活,效果类似于淘宝的筛选功能,微信小程序商品筛选,侧方弹出动画选择页面,研究了一下小程序的动画相关的文档,于是又get到了一个新的小程序技能,小程序动画animation向左移动效果. ...

最新文章

  1. 01-HTML基础与进阶-day6-录像281
  2. javascript十六进制数字和ASCII字符之间转换
  3. 技术图文:如何通过挂单刷 BigOne 的贡献值?
  4. oracle 判断如果有符合条件的记录则不插入_Oracle数据库AWR部分报告说明
  5. PPT 下载 | 神策数据孙超赟:数据驱动,做可“视”化运营
  6. Spring是如何利用“三级缓存“巧妙解决Bean的循环依赖问题
  7. Python-----学了今天,忘了昨天.
  8. SQL Server 2005 无法连接到服务器,error:26
  9. 第三篇: UpdatePanel 控件示例
  10. php 框架 容器,thinkphp5.1框架容器与依赖注入实例分析
  11. Flume 1.8.0 开发者指南(中文教程)-个人翻译版
  12. 如何设置视频的帧率、分辨率、码率来调节音视频即时通讯的质量
  13. 现代控制理论课程实验二:利用状态观测器实现状态反馈的系统设计
  14. 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)
  15. macd的python代码同花顺_史上最全MACD攻略讲解:这一篇足够
  16. 安卓和苹果免填邀请码的功能怎么实现?
  17. Flowable Modeler
  18. 利用原生js实现随机点名
  19. 自己DIY一个pinephone——debian与主线linux在红米2(msm8916)上的移植
  20. scp传输 ssh: connect to host port 22: Connection refused终极解决 vps

热门文章

  1. Rational Test RealTime 测试操作小结
  2. 如何解决无法显示隐藏文件夹
  3. springMVC对静态资源访问的处理
  4. 计算机二级考试有截图工具吗,计算机二级等级考试上机考试操作步骤(带详细操作截图).docx...
  5. LivePlayerH5直播点播播放器配置如何配置SWF路径
  6. 【Access2007】Access2007的打开方式
  7. POi 常见读写Excel 及格式设置
  8. sting stingbuffer 区别 总结
  9. java mediainfo.dll_用MediaInfo获取音视频信息
  10. 20-NSString-foundation