补间动画详解二 渐变动画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 动画 补间动画,渐变动画 Tween Animation

Animation常用属性 duration:动画时间                    repeatCount:重复次数 infinite无限次 fillAfter:是否停止在最后一帧 repe...
  • l331258747
  • l331258747
  • 2017年04月27日 15:31
  • 287

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

对于传统动画,Android提供了两类动画,即Tween(补间动画)和Frame(帧动画)。Tween动画提供了四种动画形式,即AlphaAnimation(渐变动画)、RotateAnimation...
  • yayun0516
  • yayun0516
  • 2016年04月28日 20:27
  • 5786

在代码中设置补间动画

补间动画就是指开发者只需指定动画开始、动画结束“关键帧”和动画持续时间即可,而动画变化的“中间帧”由系统计算、并补齐。所以开发者无须“逐一”定义动画过程中的每一帧。下面用一个简单实例来演示在代码中设置...
  • u010142437
  • u010142437
  • 2013年07月08日 17:56
  • 3194

Android 动画系列之补间(Tween)动画详解

上一篇博客中写了逐帧动画(Frame)的使用,Android中除了支持逐帧动画(Frame)之外,也提供了对补间(Tween)动画的支持。补间动画就是指开发者只需要指定动画的开始、结束等“关键帧”,而...
  • Airsaid
  • Airsaid
  • 2016年06月05日 20:34
  • 9297

Android开发之Tween(补间动画)完全解析(下)——代码实现

在上一篇文章中,我们详细讨论了Tween动画的xml的实现以及interpolator的使用,相信通过上篇文章大家对Tween动画的xml属性的配置会有一个详细的理解,当然这篇文章也是承接上篇文章,这...
  • dmk877
  • dmk877
  • 2016年07月24日 20:30
  • 1918

【Android开发】动画范例2-旋转、平移、缩放和透明度渐变的补间动画

实现旋转、平移、缩放和透明度渐变的补间动画,具体实现如下: 1.在新建项目的res目录中,创建一个名为anim的目录,并在该目录中创建实现旋转、平移、缩放和透明度渐变的动画资源文件。 透明度渐变的...
  • u013517797
  • u013517797
  • 2015年05月19日 20:48
  • 1882

Android Animation动画详解(一): 补间动画

Android的Tween动画由四种类型组成:alpha、scale、translate、rotate。
  • zuiwuyuan
  • zuiwuyuan
  • 2015年08月23日 18:50
  • 2545

Android开发之Tween(补间动画)完全解析(上)——xml文件配置的实现

相信不管做了多长时间开发的人都用用过Tween动画,从刚开始工作到现在我也是用了N次Tween动画,但是每一次使用总感觉掌握的不够全面,所以花了点时间详细的总结了下Tween动画,其实在android...
  • dmk877
  • dmk877
  • 2016年07月22日 23:27
  • 5667

Android四种补间动画介绍及实现

一.Android的animation由四种类型组成:alpha、scale、translate、rotate alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动...
  • romanstatic
  • romanstatic
  • 2016年09月10日 09:35
  • 1485

属性动画、帧动画、补间动画的介绍使用及对比

属性动画、帧动画、补间动画的介绍使用及对比版权声明:转载必须注明本文转自南轩的博客: http://blog.csdn.net/nanxuan521 在android开发中经常会碰到一些动画...
  • nanxuan521
  • nanxuan521
  • 2016年09月22日 10:48
  • 3010
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:补间动画详解二 渐变动画AlphaAnimation
举报原因:
原因补充:

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