图片闪烁,类似这样。

2011-11-22 16:18 上传

左右摇摆:

2011-11-22 17:07 上传

一、续播  (不知道取什么名字好,就是先播放动画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,  使用下面这个动画集你就可以看到整个变化过程。

android:fromAlpha="0.2"

android:toAlpha="1.0"

android:duration="3000"

/>

android:startOffset="3000"

android:fromAlpha="1.0"

android:toAlpha="0.2"

android:duration="3000"

/>

复制代码

其中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。

效果例子问题总结:

实验:拖动一个view使之移动,松开后view会移动到固定的位置

结果:每当view回到指定位置的动画结束后,view都会回到起始位置,于是我设置了AnimationListener,在onAnimationEnd里调整了view的位置,但是在动画结束的一瞬间view还是会闪动一下。

关于setFillAfter设为true的方法我也尝试过。不会闪动,但是下一次拖拽会出现问题。

总结:

1、在onAnimationEnd里加view.clearAnimation();

2、view.clearAnimation(); 虽然不会出现闪动现象,但是如果view里面有listView,拖动list到边缘出现黄色高光(2.3版)会异常,黄光出现过渡不自然,就像由32位颜色变到了24位,估计是由于动画被强制清除的原因。

解决办法是不用view.clearAnimation(),

在onAnimationEnd里加

TranslateAnimation anim = new TranslateAnimation(0,0,0,0);

view.setAnimation(anim);

既不闪动,也不会出现list拖动黄光异常现象。

清楚动画,然后再移动位置,这样就不会闪烁了

android 图片闪光动画_剖析Android动画(图片闪烁、左右摇摆、上下晃动等效果) | 学步园...相关推荐

  1. 动画 Animation 之 闪烁 左右摇摆 上下晃动等效果

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

  2. android淡入淡出动画_在Android中淡入动画示例

    android淡入淡出动画 1) XML File: activity_main 1)XML文件:activity_main <?xml version="1.0" enco ...

  3. android 同根动画_[转载]Android anim动画切换效果

    关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景里的对象不断做图像变换(平移.缩放. ...

  4. android实现评论列表_【Android视图效果】分组列表实现吸顶效果

    效果图 效果图 分析 先来分析一下,可以看到这是一个按月份分组的2行图片列表,列表顶部一个悬浮栏,会随着列表滑动而刷新,点击顶部栏,弹出了一个筛选框. 思路 1.列表部分 可以用RecyclerVie ...

  5. android sdk方法隐藏_每个Android开发都必须知道的利器

    1.背景介绍   在移动端项目功能不断完善和丰富的过程中我们一直在寻找一种可以高效开发且复用率高的开发模式,特别是多应用同步开发.管理.   在开发过程中你是否遇到需要发布影子工程?新建项目是否需要耗 ...

  6. android 仿支付宝菜单_这个 Android 几乎放弃的设计,iOS 要用上了?

    iOS 和 Android,两个移动时代的操作系统在历经十多年发展后,成熟度之高已经很难再找出大的短板. 如今,这两个系统相似的部分,大概比它们不相似的地方还要多得多.从早期的下拉通知栏,再到现在的侧 ...

  7. 如何用java制作动画_如何制作动画(java实现动画的代码)

    如何制作动画(java实现动画的代码)内容如下 回答一:AE用于制作mg动画,操作确实有些复杂,技术要求也高,但不得不承认它是个神器,可以创建各种吸引人的动态图形和视觉效果 当然,现在网上也有一些比较 ...

  8. android 最新pdf下载,深入剖析Android系统 (杨长刚) 中文pdf扫描版[127MB]

    <深入剖析Android系统>以Android Jelly Bean(4.1)的代码为蓝本,对Android的部分关键代码进行了注释分析,并辅以大量插图,讲述了Android大部分子系统中 ...

  9. gif透明背景动画_火柴人动画制作软件下载_火柴人动画制作软件最新电脑版下载...

          火柴人动画制作软件官方版(Pivot Stickfigures Animator)是一款完全免费的火柴人动画制作软件.如果您不具备Flash等专业动画软件制作技能,那么可使用火柴人动画制作 ...

最新文章

  1. TVM apps extension示例扩展库
  2. js实现下拉框三级级联
  3. Android:安卓APP开发显示一个美女,安卓APP开发显示两个美女
  4. 爬虫-实现登陆功能-思路-RR网的例子
  5. mac搭建svn服务器文件被锁定,MAC搭建SVN服务器并配置Cornerstone
  6. 图解算法之排序算法(4)——堆排序
  7. ctf xor题_CTF下的命令执行
  8. 金融文本信息情感分析(负面及主体判定)
  9. 钉钉人脸识别,戴个太阳帽就找不到人脸
  10. 队列加分项:杨辉三角
  11. [JVM] Java虚拟机栈
  12. 【Matlab】前馈控制
  13. 医疗后台管理系统项目
  14. 右键计算机没有软件删减,右键菜单太长会导致电脑卡顿?轻松删除右键菜单无用项!...
  15. 【小说】MR设备普及后的生活
  16. 程序员必备心理学——心流
  17. 华为2018年机试练习题[java版]
  18. 开发一个简单网站--第三章:相知
  19. 大规模天线阵列的原理、挑战和实现【转自微信公众号微波射频网】
  20. MacOS下载并配置gradle

热门文章

  1. 【网站书签】整理了一些自己觉得有用的资料网站,以此减轻浏览器书签负担(持续更新...)
  2. 微软c语言编译软件学生版下载,C语言下载_C语言官方下载【C语言编程软件】-太平洋下载中心...
  3. 1.13 判断奇数偶数
  4. 英语作文中最常引用36个名句
  5. 设计几何体素描_干货:为什么学素描一定要从画几何体开始?(建议收藏)
  6. 虫趣:当NV显卡驱动碰上Verifier
  7. Python定时抢购天猫商品(一)
  8. 【JAVA】通过ISBN一键获取书籍信息
  9. Apache hudi 0.10.1学习笔记之压缩Compaction(下篇)——执行压缩计划
  10. 怎么使用firebird maestro