`

Android使用Animation完成动画淡出效果避免重新恢复最后一帧亮度的办法

阅读更多

 

      很多游戏中都有进场的动画,用移动位置,或者透明度变化,展示出一些诸如游戏logo之类的信息。在初步了解Android的Animation之后,我们可以做出这样的效果。

      首先在res文件夹下面新建用于动画显示效果的xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <alpha
        android:duration="2000"
        android:fromAlpha="0.0"
        android:repeatCount="1"
        android:repeatMode="reverse"
        android:toAlpha="1.0" />

</set>

      之后,在需要展现动画的Activity类中声明出来

 

		logo = (ImageView) findViewById(R.id.logo);
		appAnim = AnimationUtils.loadAnimation(this, R.anim.welcome);
		appAnim.setAnimationListener(new AnimationListener() {

			@Override
			public void onAnimationStart(Animation animation) {
				// TODO Auto-generated method stub

			}

			@Override
			public void onAnimationRepeat(Animation animation) {
				// TODO Auto-generated method stub

			}

			@Override
			public void onAnimationEnd(Animation animation) {
				// TODO Auto-generated method stub
				Intent i = new Intent(getApplicationContext(),
						AnotherActivity.class);
				startActivity(i);
				finish();
			}
		});
		logo.startAnimation(appAnim);
 

      在理论上,我们也实现了这样一种效果,但是细心点,会发现我们的动画,从最暗变化到最亮,再从最亮返回到最暗,但是在跳转到另外一个Activity之前,那个设置了动画效果的ImageView又恢复了最亮,显然不符合我们的要求。

 

 

----------------------------------------------------------------------------------------------------------------------------------

 

      解决办法:在那个声明了动画效果的xml中,在set标签中加上一条android:fillAfter="true" 表示动画结束时,停留在动画的最后一帧即可。

      注意此句不要放在<alpha>标签中了,否则没有作用。

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true" >

    <alpha
        android:duration="2000"
        android:fromAlpha="0.0"
        android:repeatCount="1"
        android:repeatMode="reverse"
        android:toAlpha="1.0" />

</set>
0
0
分享到:
评论

相关推荐

    Android 初始欢迎界面淡出动画效果

    在Android开发中,动画效果是提升用户体验的重要手段之一,尤其是对于初始欢迎界面,一个优雅的淡入淡出动画可以给用户留下深刻的印象。本篇将详细介绍如何在Android中实现这样的动画效果。 首先,我们需要理解...

    android Animation动画实现loading效果

    在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要工具之一,特别是在创建加载(Loading)效果时。本文将深入探讨如何使用Android Animation来实现动态的Loading效果。 一、Android Animation概述 ...

    android图片旋转、淡入淡出、缩放、移动效果

    在Android开发中,动画是提升用户体验的关键因素之一。本文将深入探讨如何实现标题中提到的四种效果:图片旋转、淡入淡出、缩放以及移动。这些效果在UI设计和交互中广泛应用,如过渡效果、按钮点击反馈等。 首先,...

    Android Animation Frame逐帧动画2

    Frame动画基于一系列连续的静态图像,每张图像是动画中的一个帧,通过快速连续播放这些帧,人眼会将它们融合成动态画面,形成连续的动画效果。在Android中,我们可以使用`AnimationDrawable`类来实现Frame动画。 **...

    Animation(帧动画)

    帧动画(Animation)是Android提供的一种基本动画类型,适用于创建一系列连续的图像,就像电影胶片一样,通过快速播放这些图像来形成动态效果。本教程将深入讲解如何在Android中实现帧动画。 首先,帧动画是通过在`...

    Android 动画 Animation Demo

    3. **帧动画(Frame Animation)**:虽然帧动画不是属性动画的一部分,但它是Android动画体系中的一个关键元素。帧动画通过连续播放一系列图像来创建动画效果,常用于简单的2D游戏或加载指示器。`AnimationDrawable`是...

    Android Animation Frame逐帧动画

    Frame动画是Android中用于创建序列动画的一种方法,类似于传统的电影制作,通过连续播放多帧静态图片来形成连续的视觉效果。与Tween动画不同,Tween动画是通过对对象属性(如平移、旋转、缩放等)进行平滑过渡来实现...

    Android使用TweenAnimation生成动画效果的例程.rar

    TweenAnimation,又称补间动画,是Android提供的基础动画系统的一部分,它可以实现对象在指定时间内平移、旋转、缩放或改变透明度等效果。在这个例程中,我们将深入探讨如何在Android应用中使用TweenAnimation创建...

    Android 用Animation-list实现逐帧动画

    `Animation-list`是Android XML动画资源的一种类型,它定义了一组子项(通常为ImageView的源),这些子项按照指定的顺序和时间间隔依次显示,从而形成动画效果。在`res/anim`目录下创建XML文件,例如`wait_animation...

    Frame Animation 帧动画Demo

    帧动画在Android开发中是一种常见的视觉效果,常用于创建简单的动画效果,比如旋转、滑动或者是一些简单的交互动画。本Demo旨在提供一个基础的帧动画实现,以供开发者参考和使用。帧动画的工作原理是通过连续播放一...

    android动画介绍之 自定义Animation动画

    本文将深入探讨Android自定义`Animation`动画的实现方式,帮助开发者更好地掌握这一技术。 Android动画分为多种类型,包括`Animation`类(补间动画)、`ViewPropertyAnimator`(属性动画)、以及`Transition`(过渡...

    android 文字淡出效果

    在Android开发中,实现文字淡出效果是一种常见的动画操作,主要用在提示信息、加载进度或者界面切换等场景。下面将详细介绍如何在Android中创建一个简单的文字淡出效果。 首先,我们需要了解Android中的动画系统。...

    Android 帧动画优化实现可减少内存使用

    在Android开发中,帧动画(Frame Animation)是一种常见的动态效果实现方式,它通过连续播放一系列静态图片来模拟动画效果。然而,如果不进行优化,帧动画可能会导致内存消耗过大,影响应用性能,甚至引发ANR...

    wpf Animation动画效果演示,包含多个实例

    WPF Animation不仅限于上述基本效果,还可以组合使用,创建复杂的交互式动画。例如,结合事件触发器,当用户点击按钮时,可以触发一系列动画效果,如按钮变大、颜色变化并缓慢淡出。此外,还可以通过数据绑定将动画...

    Android动画效果--渐变动画

    在Android开发中,动画效果是提升用户体验的关键因素之一。渐变动画是Android动画体系中的一种基本类型,它可以为用户界面带来生动和动态的感觉。本文将深入探讨四种主要的渐变动画:Alpha(透明度)、Scale(缩放)...

    Android 序列帧动画,开始,结束监听的解决Demo.zip

    在Android开发中,序列帧动画(Frame Animation)是一种常见的动态效果实现方式,它通过连续播放一系列静态图片来创建动画效果,类似于电影胶片的工作原理。本Demo主要关注如何在Android中实现序列帧动画,并添加...

    android动画效果animation

    本文将深入探讨Android动画效果的使用,包括对animation API的理解和灵活应用。 一、Android动画类型 Android支持两种主要的动画类型:属性动画(Property Animation)和视图动画(View Animation)。属性动画是自...

    Android 抖动动画效果

    首先,我们要知道在Android中,动画主要分为两种类型:补间动画(Tween Animation)和帧动画(Frame Animation)。抖动动画属于补间动画的一种,因为它涉及到对象的位置、大小或透明度等属性的变化。补间动画是通过...

    Android-Animation动画之Tween Animation补间动画

    补间动画(Tween Animation)是Android提供的基本动画类型,它通过对对象的透明度、大小、位置或旋转等属性进行平滑过渡来实现视觉效果。本篇文章将深入探讨Android中的Tween Animation,包括其原理、使用方法以及...

Global site tag (gtag.js) - Google Analytics