为了更好的说明Android动画的淡入淡出效果,这里以一个场景为例: 界面上有两个View 控件,两个View交替显示,当一个View淡入显示,另一个View淡出不可见。

我们把当前要显示的View叫showView, 要隐藏不可见的view叫hideView。

 final View showView = findViewById(***)
final View hideView = findViewById(***)

首先说淡入显示,既然要显示,那么View要设置为可见,要实现淡入的效果,就需要将透明度先设置为0

showView.setAlpha(0f);
showView.setVisibility(View.VISIBLE);

接下来就要调用showView.animate()方法来实现动画效果,设置最终的透明度为1。就可以达到不可见->模糊->完全显示

   showView.animate()
.alpha(1f)
.setDuration(5000)
.setListener(null);

setDuration是设置动画的持续时间,这里设置的是5秒。 setListener这里先缓一缓,最后我会说明这个方法的作用。

这样showView的淡入效果就实现了,但是同时也必须在同一时间来完成hideView的淡出隐藏,否则两个view就重叠了。

知道如何实现淡入,也就知道如何实现淡出了 - 将透明度由1变到0,最后将hideView设为不可见(在onAnimationEnd事件中设置), 调用hideView.animate()来实现动画效果。就可以达到显示->模糊->完全不可见

 hideView.animate()
.alpha(0f)
.setDuration(mShortAnimationDuration)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
hideView.setVisibility(View.GONE);
}
});

好,目前为止,淡入淡出的效果已经实现,但是相信有细心的童鞋会发现如下细节

1 对于showView, 是先调用showView.setVisibility(View.VISIBLE)设置为可见, 然后才调用showView.animate()

对于hideView, 是先调用 hideView.animate(),最后在onAnimationEnd事件中调用hideView.setVisibility(View.GONE);设置为不可见
2 showView为什么要调用setListener(null), 这跟我文章开头提到的场景有关,因为我们要实现的是两个View交替淡入淡出显示,所以当前的showView就是上一次的hideView,而hideView是设置了listener了,并且实现的是设置view为不可见,所以必须清掉。

Android动画之淡入淡出的更多相关文章

  1. Android 四种简单的动画(淡入淡出、旋转、移动、缩放效果)

    最近在Android开发当中,用到的动画效果. public void onClick(View arg0) { // TODO 自动生成的方法存根 switch (arg0.getId()) { c ...

  2. jQuery-4.动画篇---淡入淡出效果

    jQuery中淡出动画fadeOut 让元素在页面不可见,常用的办法就是通过设置样式的display:none.除此之外还可以一些类似的办法可以达到这个目的.这里要提一个透明度的方法,设置元素透明度为 ...

  3. JQuery动画之淡入淡出动画

    1. 淡入动画 1.1 不带参数的淡入动画 格式: $(selector).fadeIn(); 示例代码: <!doctype html> <html lang="en&q ...

  4. JQuery--基础动画、滑动动画、淡入淡出动画、自定义动画

    /** * [JQ基础动画] * show() 显示 * hide() 隐藏 * toggle() 切换 * 默认无动画,如果要产生动画 * 在括号内,添加毫秒数,可产生动画和控制动画的快慢 * * ...

  5. jquery鼠标键盘悬停事件,形变动画和淡入淡出

    鼠标和键盘悬停 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  6. Javascript-- jQuery动画篇(淡入淡出效果)

    淡入淡出效果 jQuery 提供了下面几种方法可以实现显示的淡入淡出效果: fadeIn() fadeOut() fadeToggle() fadeTo() fadeIn()方法 fadeIn()实现 ...

  7. android 动画总结

    以下博文讲解比较详细,可查阅: http://www.360doc.com/content/13/0102/22/6541311_257754535.shtml 几个关键属性: setRepeatCo ...

  8. Android面试收集录16 Android动画总结

    一.Android 动画分类 总的来说,Android动画可以分为两类,最初的传统动画和Android3.0 之后出现的属性动画: 传统动画又包括 帧动画(Frame Animation)和补间动画( ...

  9. [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3574131.html  这个可以实现ImageView异步加载 ...

随机推荐

  1. [转]Oracle Hidden Parameter:_allow_resetlogs_corruption

    本文转自eygle博客,原文地址:http://www.eygle.com/archives/2005/10/oracle_hidden_allow_resetlogs_corruption.html ...

  2. 安卓中級教程(7):annotation中的 public @interface的用法

    package com.example.ele_me.util; import java.lang.annotation.Retention; import java.lang.annotation. ...

  3. LoadRunner使用技巧-IP欺骗的使用

    设置IP欺骗的原因         1.当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达到压力测试的效果. 2.某些服务器配置了负载均 ...

  4. Linux下安装搭建WordPress网站

    WordPress简介 WordPress 是一种使用 PHP语言和 MySQL数据库开发的开源.免费的Blog(博客,网志)引擎,用户可以在支持 PHP 和 MySQL 数据库的服务器上建立自己的 ...

  5. eclipse如何快速查找某个类

    2. [Ct rl+Shift +T ]    查找工作空间(Workspace)构建路径中的可找到Java类文件,不要为找不到类而痛苦,而且可以使用“*”.“?”等通配符. 3. 当我们编写了很多的 ...

  6. mvc ef LINQ to Entities 不识别方法“Int32 Parse(System.String)”,因此该方法无法转换为存储表达式。

    private sys_User GetUserInfo() { sys_User model = null; var userId = Convert.ToInt32(AccountHelper.G ...

  7. mysql 锁-比较详细、深入的介绍

    详见:http://www.cnblogs.com/chenpingzhao/archive/2015/12/13/5041967.html

  8. 给Source Insight做个外挂系列之一--发现Source Insight

    一提到外挂程序,大家肯定都不陌生,QQ就有很多个版本的去广告外挂,很多游戏也有用于扩展功能或者作弊的工具,其中很多也是以外挂的形式提供的.外挂和插件的区别在于插件通常依赖于程序的支持,如果程序不支持插 ...

  9. [软件测试基础3]基于Jemter的压力测试

    一.整体目标 安装LAMP待测系统,推荐ECShop,基于此进行Jmeter压力测试,并在测试后得出Jmeter测试报告,并根据sysstat得出Linux服务器的CIMN(CPU,IO,Memory ...

  10. php常用关键字

    1.final关键字 <?php //final关键字修饰的类 是最终的类不能被继承 class demo{ //final关键字修饰的成员方法 是最终版本的方法不能被重写 final publ ...