补间动画详解二 渐变动画AlphaAnimation

原创 2016年08月29日 11:02:33
AlphaAnimation通过修改alpha属性,改变View的透明度,达到渐变的动画效果。

AlphaAnimation类官方文档:
https://developer.android.com/reference/android/view/animation/AlphaAnimation.html

关于父类Animation的详解可参考文章:
http://blog.csdn.net/ruancoder/article/details/52347243

一、AlphaAnimation的使用
(1).使用xml文件创建AlphaAnimation
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="3000">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"/>
</set>

AlphaAnimation animation = AnimationUtils.loadAnimation(context, R.anim.alpha);
view.startAnimation(animation);

(2).使用java代码创建AlphaAnimation
AlphaAnimation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(3000);
view.startAnimation(animation);

二、AlphaAnimation的分析
AlphaAnimation继承自Animation,除了拥有父类的成员变量外,添加了mFromAlpha和mToAlpha。取值范围0.0~1.0,0.0是完全透明,1.0完全不透明。
public class AlphaAnimation extends Animation {
    /** 动画开始时的透明度,取值范围0.0~1.0 */
    private float mFromAlpha;
    /** 动画结束时的透明度,取值范围0.0~1.0 */
    private float mToAlpha;
}

当使用java代码的方式创建AlphaAnimation时,使用如下构造方法,分别传入fromAlpha和toAlpha。
public AlphaAnimation(float fromAlpha, float toAlpha) {
    mFromAlpha = fromAlpha;
    mToAlpha = toAlpha;
}

当使用xml文件的方式创建AlphaAnimation时,由AnimationUtils工具类加载动画文件,使用如下构造方法,通过xml中的属性android:fromAlpha和android:toAlpha来获取属性值。
public AlphaAnimation(Context context, AttributeSet attrs) {
    super(context, attrs);
        
    TypedArray a =
        context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.AlphaAnimation);
        
    mFromAlpha = a.getFloat(com.android.internal.R.styleable.AlphaAnimation_fromAlpha, 1.0f);
    mToAlpha = a.getFloat(com.android.internal.R.styleable.AlphaAnimation_toAlpha, 1.0f);
        
    a.recycle();
}

AlphaAnimation的核心是重写父类Animation的applyTransformation()方法。
在动画从开始倒结束的过程中,参数interpolatedTime从0.0递增到1.0,通过计算mFromAlpha + ((mToAlpha - mFromAlpha) * interpolatedTime)的值,来不断的修改View的透明度,达到渐变动画的效果。
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
    final float alpha = mFromAlpha;
    t.setAlpha(alpha + ((mToAlpha - alpha) * interpolatedTime));
}

版权声明:本文为博主原创文章,转载请注明出处。

相关文章推荐

Android 动画 - AlphaAnimation渐变动画

AlphaAnimation:透明度渐变动画创建AlphaAnimation有两种方式 XML文件+Java代码 Java代码方式 XML文件+Java代码 这里是一个完整的Alpha动画XML动画...

【Android动画九章】-AlphaAnimation(渐变动画)

对于传统动画,Android提供了两类动画,即Tween(补间动画)和Frame(帧动画)。Tween动画提供了四种动画形式,即AlphaAnimation(渐变动画)、RotateAnimation...

Android 旋转、平移、缩放和透明度渐变的补间动画

补间动画就是通过对场景里的对象不断进行图像变化来产生动画效果。在实现补间动画时,只需要定义开始和结束的“关键帧”,其他过渡帧由系统自动计算并补齐。在Android中,提供了以下4种补间动画。 **1....

android游戏开发5-10 补间动画 透明度渐变 旋转 缩放 平移

首先在res文件下新建anim文件夹 新建anim_alpha.xml代码如下: <alpha android:duration="2000" andro

Android各种动画效果ScaleAnimation,AlphaAnimation,TranslateAnimation,RotateAnimation(文章结尾有代码)

在各种应用中,通常会使用到多种动画效果,在Android中常见的动画有四种:Scale,Alpha,Translate,Rotate。Android系统也很人性化的给出了利用xml方式和利用Java代...

Android 动画AlphaAnimation类方法

当我们打开应用时,出现在我们眼前的是一张渐变图片。此图可以是应用欢迎图片,也可以广告海报(服务可以推送广告),就是用到了动画AlphaAnimation完成的。 public v...

Android动画之AlphaAnimation使用

什么是AlphaAnimation AlphaAnimation即淡入淡出动画,我们看到大多数游戏按钮场景切换的效果,都是这样的动画 下面我分两种方式来介绍AlphaAnimation如何使用。 ...

Android动画之AlphaAnimation

1.Android动画2透明度动画代码实现(1)在res目录下新建文件夹anim,存放动画资源 alpha_animation.xml <alph

Android动画 Tweened Animation 之 AlphaAnimation

AlphaAnimation(渐变透明度动画) AlphaAnimation的类继承结构与ScaleAnimation类继承结构类似,这里就不写出来了。 AlphaAnimation一般用于制作淡...

渐变动画详解

  • 2015-06-03 12:26
  • 102KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)