您的位置:首页 > 移动开发 > Android开发

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

2017-09-28 17:26 357 查看
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

接下来就来看几个不是特别好理解的插值器的运行效果,没有演示到的,大家可以自己动手运行看看效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 动画 标签