首页 > 代码库 > Tween动画TranslateAnimation细节介绍

Tween动画TranslateAnimation细节介绍

Tween动画有以下这几种:

Animation   动画

AlphaAnimation 渐变透明度

RotateAnimation 画面旋转

ScaleAnimation 渐变尺寸缩放

TranslateAnimation 位置移动

AnimationSet  动画集


今天主要讲讲TranslateAnimation

主要的属性有

float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;

float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;

float fromYDelta, 这个参数表示动画开始的点离当前View Y坐标上的差值;

float toYDelta)这个参数表示动画开始的点离当前View Y坐标上的差值;

这些大家都知道,但是你们真的了解了TranslateAnimation的x,y为0时刻,表示的位置了吗??

在TranslateAnimation中,对位置的理解,如果你没弄清楚,常常用到相反的效果,自己还振振有词的说

是不是书本有错误了,和你的实践对不上。

其实理解起来也不难,一张图搞定


从图上看出来,x,y为0的状态就是动画对象完全显示在屏幕中的状态(不一定是屏幕中央,取决于你动画对象实际宽高)

Y的100%状态是往屏幕下方移动整个动画效果,Y的-100%是屏幕上方移动整个动画高度,x方向上类似,右侧表示

100%,左侧表示-100%;

接下来,同个一个实例讲解:对一个Popupwindow弹出做弹出动画效果,点击屏幕中button,popupwindow从下往上显示,

然后点击popupwindow中的button,popupwindow从上往下收起。

分为进入动画fadein.xml  从下往上

<?xml version="1.0"encoding="utf-8"?>
<setxmlns:android="http://schemas.android.com/apk/res/android"
   android:shareInterpolator="false">
    <translate
        android:fromYDelta="100%"
        android:toYDelta="0" 
        android:duration="500"/>
</set>
退出动画fadeout.xml 从上往下

<?xml version="1.0"encoding="utf-8"?>
<setxmlns:android="http://schemas.android.com/apk/res/android"
   android:shareInterpolator="false">
    <translate
        android:fromYDelta="0"
        android:toYDelta="100%" 
        android:duration="500"/>

</set>


/PopupWindow/res/values/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <style name="animation">
        <itemname="android:windowEnterAnimation">@anim/fadein</item> 
        <itemname="android:windowExitAnimation">@anim/fadeout</item> 
   </style>
</resources>

这样就实现了popupwindow从底部到完全显示,再从显示到底部消失的动画过程 ,其他效果自己去实践


注:在简单的东西,都是靠自己实践才明白,也不要说这个,那个太简单,看了就懂了,很多东西看过了懂了

过段时间你就不懂了,这就是你学什么都没学精的缘由吧