正文  图形图像 > GIF/动画 >

XML实现Android动画效果anim

在xml中实现动画效果很简单。像下面这样的模板基本就能做个像样的动画效果了。<set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha/> <scale/> <translate/> <rotate/></set>不过,这......

在xml中实现动画效果很简单。像下面这样的模板基本就能做个像样的动画效果了。

<set xmlns:android="http://schemas.android.com/apk/res/android">
  <alpha/>
  <scale/>
  <translate/>
  <rotate/>
</set>

不过,这样实现的效果往往都只是一个简单的切换效果。不是向左右移动消失就是变大变小消失什么的。

但是哦!它可不是只能做到这样的效果哦~~其实有些人应该已经知道了,在设置动画参数的时候还可以设置动画发生的开始时间。我觉得这个很有趣~因为这样就能实现一套比较复杂的动画了~~

废话不多说,先上一个我写的动画效果~~

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


    <scale
        android:duration="500"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.4"
        android:toYScale="0.4" />
    <scale
        android:startOffset="500"
        android:duration="100"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.2"
        android:toYScale="1.2" />
    <scale
        android:startOffset="600"
        android:duration="100"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.8"
        android:toYScale="0.8" />


    <scale
        android:startOffset="1000"
        android:duration="500"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="0.0" />


</set>

以下是配套的,我是用这两个作为Activity切换效果来看的,如果你也想看效果的话最好也这样做。

只要在startActivity后面写上一句overridePendingTransition,传入两个动画效果的xml就行了~~

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


    <translate
        android:startOffset="1500"
        android:duration="500"
        android:fromXDelta="500"
        android:fromYDelta="0"
        android:toXDelta="-50"
        android:toYDelta="0" />
    
    <translate
        android:startOffset="2000"
        android:duration="100"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="+80"
        android:toYDelta="0" />
    
    <translate
        android:startOffset="2100"
        android:duration="100"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="-30"
        android:toYDelta="0" />


</set>