Android动画之移动缩放动画

最近写了一个移动缩小动画,故来记录一下,以防忘记。先上图——

Android动画之移动缩放动画

主要代码:

    /**
     * 如果是从现在的位置移动到别的位置,那么初始XY的值都是0,向左边,那么结束X值就是 负数,向右则是正数,上下亦是如此
     * 如果是从别的位置移动到现在的位置,那么结束XY的值都是0,其他的和上面一样
     * @param fromX 初始X位置
     * @param toX   结束X位置
     * @param fromY 初始Y位置
     * @param toY   结束Y位置
     * @param time  动画时间
     * @param view  控件
     */

    private void setAnimation(float fromX,float toX,float fromY,float toY,long time,View view) {
        /**位移动画*/
        Animation mTranslateAnimation = new TranslateAnimation(fromX, toX,fromY, toY);
        mTranslateAnimation.setDuration(time);

        /** 缩放动画*/
        Animation mScaleAnimation = new ScaleAnimation(1.0f, 0.5f, 1.0f, 0.5f,// 整个屏幕就0.0到1.0的大小//缩放
                Animation.INFINITE, 0.5f,
                Animation.INFINITE, 0.5f);
        mScaleAnimation.setDuration(time);

        /** 组合动画*/
        AnimationSet mAnimationSet=new AnimationSet(false);
        mAnimationSet.addAnimation(mScaleAnimation);
        mAnimationSet.setFillAfter(true);//true 设置动画结束后,控件位置保持不动,false 则是返回初始位置
        mAnimationSet.addAnimation(mTranslateAnimation);
        view.startAnimation(mAnimationSet);
    }

调用示例:

setAnimation(0, -(tvMove.getX()-tvTarget.getX()), 0, -(tvMove.getY()-tvTarget.getY()),1500,tvMove);

图例上的xml:

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

    <TextView
        android:id="@+id/tv_target"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/base_color"
        android:textColor="@color/white"
        android:padding="@dimen/dimen10"
        android:text="垃圾桶"
        android:layout_marginLeft="@dimen/dimen10"
        android:layout_marginTop="@dimen/dimen10"/>



    <TextView
        android:id="@+id/tv_move"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/base_color"
        android:textColor="@color/white"
        android:padding="@dimen/dimen10"
        android:layout_centerInParent="true"
        android:text="小纸条"/>

</RelativeLayout>