Android之补间动画Tween(set简单的一般够用)

set标签的使用

到这里可能有的同学会说动画太单调,其实学好Tween动画你能做出好多比较酷炫的动画,这就要用到set标签了从它的名字我们也能够猜出来它是干什么用的,它就是一组动画的集合,也就是说我们可以让一个View同时执行多个动画,set标签自已是没有属性的,他的属性都是从Animation继承而来,但当它们用于Set标签时,就会对Set标签下的所有子控件都产生作用。
它所拥有的属性我们上面也介绍到了
android:duration:动画执行的时间,以毫秒为单位
android:fillEnabled:true|false,true:动画结束时还原到开始动画前的状态,false?
android:fillBefore:与fillEnabled相同
android:fillAfter:true|false,true:动画结束时,将保持动画最后时的状态
android:repeatMode:reverse|restart,重复类型,reverse:表示倒序回访,restart:表示重新放一遍这个属性必须与repeatCount联合使用,因为牵扯到重复,即重复播放时的播放类型。
android:repeatCount:动画重复的次数,可以是你想循环播放的次数,也是可以是infinite:表示无限循环
android:interpolator:设定的插值器,它主要用来为动画设置一些特殊的效果,比方说:加速运动、减速运动、动画结束的时候弹起等等。
接着们就来看一个组合动画吧
xml文件

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
>
    <alpha android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="3000" 
        />
    <scale android:fromXScale="0.0"
        android:toXScale="1.0"
        android:fromYScale="0.0"
        android:toYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="3000"/>
        <rotate
            android:fromDegrees="0"
            android:toDegrees="720"
            android:pivotX="50%"
            android:pivotY="50%" 
android:duration= "3000"
            />

        <translate android:startOffset="3000"
            android:fromXDelta="0"
            android:toXDelta="85"
            android:fromYDelta="0"
            android:toYDelta="0"
            android:duration="1000"
            />
         <alpha 
             android:startOffset="4000"
             android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:duration="1000" 
        />
</set>
package com.example.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView imageiew=(ImageView) findViewById(R.id.image);
        Animation animation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.text);
        imageiew.startAnimation(animation);
    }




}

如果只简单地引用这些插值器还不能满足需要的话,我们要考虑一下个性化插值器。我们可以创建一个插值器资源修改插值器的属性,比如修改AnticipateInterpolator的加速速率,调整
CycleInterpolator的循环次数等。为了完成这种需求,我们需要创建XML资源文件,然后将其放于/res/anim下,然后再动画元素中引用即可。我们先来看一下几种常见的插值器可调整的属性:

android:factor 浮点值,加速速率,默认为1
android:tension 浮点值,起始点后退的张力、拉力数,默认为2
android:tension 同上 android:extraTension 浮点值,拉力的倍数,默认为1.5(2 * 1.5)

android:cycles 整数值,循环的个数,默认为1
android:factor 浮点值,减速的速率,默认为1

浮点值,超出终点后的张力、拉力,默认为2
接下来就来看几个不是特别好理解的插值器的运行效果,没有演示到的,大家可以自己动手运行看看效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值