补间动画Tween

1.透明度渐变动画(AlphaAnimation)

1)纯代码实现

Animation animation = new AlphaAnimation(1f,0.1f);

参数1: 起始透明度;

参数2: 目标透明度;

//实现渐变功能
            AnimationSet aset = new AnimationSet(true);

            AlphaAnimation alpha = new AlphaAnimation(1, 0); // 由完全显示 -->// 完全透明
            alpha.setDuration(3000); // 3秒完成动画
            aset.addAnimation(alpha); // 增加动画
            MainActivity.this.img.startAnimation(aset); // 启动动画

2)xml文件实现(res文件下新建anim文件下新建xml)

xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
    android:repeatMode="restart"
     android:repeatCount="3"
     android:duration="500"
     android:fromAlpha="1"
     android:toAlpha="0">

</alpha>
</set>

java:

Animation anim = AnimationUtils.loadAnimation(MainActivity.this,
                    R.anim.alpha);
            MainActivity.this.img.startAnimation(anim); // 启动动画

2.旋转

Animation animation  = new RotateAnimation(360,0,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

参数1:旋转的起始角度

参数2:旋转的终止角度

参数3:旋转中心的x轴取值参照方式

参数4:中心点x轴的取值

参数5:旋转中心的y轴取值参照方式

参数6:中心点y轴的取值

1)纯代码实现

    AnimationSet rset = new AnimationSet(true);
                RotateAnimation rotate = new RotateAnimation(
                        0,360 ,    // 0~360度
                        Animation.RELATIVE_TO_PARENT,0.5f ,    // X轴开始位置
                        Animation.RELATIVE_TO_PARENT,0.0f );    // Y轴移动位置
                rotate.setDuration(3000); // 3秒完成动画
                rset.addAnimation(rotate); // 增加动画

                MainActivity.this.image.startAnimation(rset); // 启动动画

2)xml实现

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <rotate
        android:fromDegrees="0.0"
        android:toDegrees="+360.0"
        android:pivotX="50%p"
        android:pivotY="0%p"
        android:duration="3000" />
</set>

3.缩放

Animation animation  = new

ScaleAnimation(1f,0.2f,1f,0.2f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

参数1:x方向起始大小(1f表示原图大小)

参数2:x方向终止大小(0.2f表示原图的0.2倍)

参数3:y方向起始大小(1f表示原图大小)

参数4:y方向终止大小(0.2f表示原图的0.2倍)

参数5:缩放中心点x轴取值的参照方式

参数6:中心点x轴的取值(0.5f表示相对与原图的0.5倍)

参数7:缩放中心点y轴取值参照方式

参数8:中心点y轴的取值(0.5f表示相对与原图的0.5倍)

1)代码实现

//实现缩放功能
                AnimationSet sset = new AnimationSet(true);

                ScaleAnimation scale = new ScaleAnimation(1, 0.0f, 1, 0.0f,
                        Animation.RELATIVE_TO_SELF, 0.5f,
                        Animation.RELATIVE_TO_SELF, 0.5f);
                scale.setDuration(3000); // 3秒完成动画
                sset.addAnimation(scale); // 增加动画
                MainActivity.this.image.startAnimation(sset); // 启动动画

2)xml实现

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:fromXScale="1.0"
        android:toXScale="0.0"
        android:fromYScale="1.0"
        android:toYScale="0.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:startOffset="100"
        android:repeatCount="3"
        android:duration="3000" />
</set>

4.平移动画

Animation  animation = new TranslateAnimation(0,50,0,50);

参数1:x轴的起始位置

参数2:x轴的终止位置

参数3:  y轴的起始位置

参数4:y轴的终止位置

1)代码实现

//实现移动
                AnimationSet tset = new AnimationSet(true);
                TranslateAnimation tran = new TranslateAnimation(
                        Animation.RELATIVE_TO_SELF,0.0f ,    // X轴开始位置
                        Animation.RELATIVE_TO_SELF,0.5f ,    // X轴移动的结束位置
                        Animation.RELATIVE_TO_SELF,0.0f ,    // Y轴开始位置
                        Animation.RELATIVE_TO_SELF,0.5f );    // Y轴移动位置
                tran.setDuration(3000); // 3秒完成动画
                tset.addAnimation(tran); // 增加动画
                MainActivity.this.image.startAnimation(tset); // 启动动画

2)xml实现

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0.0"
        android:toXDelta="50%"
        android:fromYDelta="0.0"
        android:toYDelta="150%"
        android:duration="3000" />
</set>

5.混合动画

1)代码实现

    AnimationSet tset = new AnimationSet(true);

                aset=new AnimationSet(true);
                 AlphaAnimation alph=new AlphaAnimation(0, 1);
                 alph.setRepeatCount(3);
                  alph.setDuration(5000);
                 aset.addAnimation(alph);

                TranslateAnimation tran = new TranslateAnimation(
                Animation.RELATIVE_TO_SELF,0.0f ,    // X轴开始位置
                Animation.RELATIVE_TO_SELF,0.5f ,    // X轴移动的结束位置
                Animation.RELATIVE_TO_SELF,0.0f ,    // Y轴开始位置
                Animation.RELATIVE_TO_SELF,0.5f );    // Y轴移动位置
        tran.setDuration(3000); // 3秒完成动画

        tset.addAnimation(alph); // 增加动画
                tset.addAnimation(tran); // 增加动画

                MainActivity.this.image.startAnimation(tset); // 启动动画

2)xml配置实现

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0.0"
        android:toXDelta="50%"
        android:fromYDelta="0.0"
        android:toYDelta="150%"
        android:duration="3000" />
    <scale
        android:fromXScale="1.0"
        android:toXScale="0.0"
        android:fromYScale="1.0"
        android:toYScale="0.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:startOffset="100"
        android:repeatCount="3"
        android:duration="3000" />
</set>
时间: 2024-11-06 20:04:31

补间动画Tween的相关文章

Android中的补间动画(tween)的简单使用

相对帧动画,补间动画(tween)可以这么理解:我们不必像帧动画一样指定动画的每一帧,只需定义一个动画的开始和结束关键帧,而中间变化的帧由系统帮我们计算. tween动画可以分为下面几种: AlphaAnimation(透明渐变动画): 示例:res/anim/alpha.xml <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.andr

深入学习Phaser补间动画

Tweens是什么? Tweens通常被称为补间动画.补间动画是指在确定好两个关键帧之后,由计算机自动生成这两帧之间插补帧,从而实现动画的过程.例如,物体从当前位置在两秒内向右移动200个像素,只要设置好目标位置(当前位置的右边200像素)和时长(两秒),则计算机会自动生成补间动画,在两秒内使物体从当前位置移到目标位置. 创建一个Tween 补间的目标对象 最常见的创建一个补间动画的语句如下所示: var tween =this.game.add.tween(this.sprite).to({ 

Android基础笔记(十)- 帧动画、补间动画详解、对话框

帧动画 补间动画Tween Animation 对话框以及面试中的注意点 帧动画 帧动画很简单,我们首先看一下Google官方解释This is a traditional animation in the sense that it is created with a sequence of different images. 意思表达的很明了,一个传统的动画是由一组不同的图片组成的.帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果. 创建一帧动画分为一下几步(支持4

Android开发之Tween(补间动画)完全解析(下)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51980734 在上一篇文章中,我们详细讨论了Tween动画的xml的实现以及interpolator的使用,相信通过上篇文章大家对Tween动画的xml属性的配置会有一个详细的理解,当然这篇文章也是承接上篇文章,所以强烈建议先阅读上篇文章:Android开发之Tween(补间动画)完全解析(上),这篇文章将从代码的角度实现上篇文章的效果.如有疑问请留言,如有谬误欢迎批评指正. T

Android开发之Tween(补间动画)完全解析(一)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51912104 相信不管做了多长时间开发的人都用过Tween动画,从刚开始工作到现在我也是用了N次Tween动画,但是每一次使用总感觉掌握的不够全面,所以花了点时间详细的总结了下Tween动画,其实在android中熟练掌握动画,能够帮助我们实现一些非常酷炫的效果从而使我们的app在交互或者用户体验上有一个更好的体验,鉴于此详细的学习动画还是很有必要的,相信通过本篇的学习大家会对T

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

转载请标明出处: http://blog.csdn.net/Airsaid/article/details/51591239 本文出自:周游的博客 前言 开发环境 补间动画的属性 Animation的属性 Alpha属性 Rotate属性 Scale属性 Translate属性 AnimationSet属性 补间动画的使用 代码中使用补间动画 XML中定义补间动画资源AnimationDrawable 补间Tween动画与Interpolator 前言 上一篇博客中写了逐帧动画(Frame)的使

Android动画效果之Tween Animation(补间动画)(一)

前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation(补间动画). Tween Animation(补间动画): Tween动画,通过对View的内容进行一系列的图形变换 (包括平移.缩放.旋转.改变透明度)来实现动画效果.动画效果的定义可以采用XML来做也可以采用编码来做. 动画类型 XML配置方式 Java代码实现方式 渐变透明度动画效果 <al

Android 学习之补间(Tween)动画

补间动画,就是开发者只需要指定动画的开始,动画的结束的"关键帧",而动画变化的"中间帧"由系统计算,并且补齐.这就是补间动画. 补间动画共分为四类: AlphaAnimation(透明动画),ScaleAnimation(缩放动画),TranslateAnimation(位移动画),RoateAnimation(旋转动画) 我们依次学习. a:透明动画 public void AlphaAnimation(View v) { //0:代表的是全透明,1代表的是全不透

android 动画(1) 补间动画

android动画: 3.0以前,android支持两种动画模式,tween animation,frame animation, 3.0中又引入了一个新的动画系统:property animation, 这三种动画模式在SDK中被称为 property animation,        属性动画: view animation,   补间动画:  给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变. (Tween animation) drawable animatio