Android 動畫

  • 旋轉動畫
 RotateAnimation rotateAnimation = new RotateAnimation(0,-360,
                Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
        LinearInterpolator interpolator = new LinearInterpolator(); //勻速器
        rotateAnimation.setInterpolator(interpolator);
        rotateAnimation.setDuration(6000);
        rotateAnimation.setRepeatCount(Animation.INFINITE);
        rotateAnimation.setRepeatMode(Animation.RESTART);
        mBiggerCircle.setAnimation(rotateAnimation);
        rotateAnimation.start();
  • AnimationUtils.loadAnimation
    xml文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_interpolator" >
    <!--
        從中間一條直線展開,從而形成一個頁面
        android:fromXScale="0.0"
       android:toXScale="1.0"
               上面兩句指的是組件從0.0比例展開到原圖的  寬度  大小
       android:fromYScale="1.0"
       android:toYScale="1.0"
              這 上面兩句指的是組件在高度上不發(fā)生變化
       android:pivotX="50%"
               這一句指的是以組件寬的中間點作參照點展開
       android:duration="400"
        最后一句指動作時間為0.4秒(400毫秒)
     -->

    <scale
        android:fromXScale="1.0"
        android:fromYScale="0.0"

        android:toXScale="1.0"
        android:toYScale="1.0"

        android:pivotY="50%"
        android:duration="2000"
        />

    <!--
        這樣形成的效果就是你想要的展開效果,
        在res文件夾下新建anim文件夾,在anime文件夾中新建一個xml,將這段代碼復制進去
        然后在對應的Activity中用AnimationUtil類load一下就可以用了
    -->
</set>

Activity中使用:

 Animation animation = AnimationUtils.loadAnimation(PayResultActivity.this, R.anim.expand);
 mStuInfoContainer.setAnimation(animation);  //需要動畫的控件去展示效果
  • 屬性動畫集
    下面是一個屬性動畫的集合,實現(xiàn)了平移和透明度的改變。里面有一個遞歸,一個控件實現(xiàn)該動畫完畢后在讓另一個控件實現(xiàn)該動畫。
 private void startAnimation(View view, int time, int delayTime, int startY, int endY) {
        ObjectAnimator alpha = ObjectAnimator.ofFloat(view, "alpha", 0f, 1f);
        ObjectAnimator translationY = ObjectAnimator.ofFloat(view, "translationY", startY, endY);
        //動畫集合,位移和透明動畫
        AnimatorSet set = new AnimatorSet();
        set.playTogether(translationY, alpha);
        set.setStartDelay(delayTime);
        set.setDuration(time);
        set.addListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {

            }

            @Override
            public void onAnimationEnd(Animator animation) {
                if (index < 1) {
                    //遞歸
                    startAnimation(mMsgInfoContainer, 1000, 0, -100, 0);
//                    startAnimation(mMsgInfoContainer, 2000, 0, 0, 0);
                    index++;
                }
            }

            @Override
            public void onAnimationCancel(Animator animation) {

            }

            @Override
            public void onAnimationRepeat(Animator animation) {

            }
        });

        set.start();
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 最近工作比較清閑,所以想系統(tǒng)的復習和學習下自己比較短缺的知識,所以。。。 程序運行效果圖: Android動畫主要...
    小沈新手閱讀 518評論 0 1
  • 簡介 Android動畫主要有三種類型:View動畫、幀動畫和屬性動畫。其中,幀動畫也是View動畫的一種,它通過...
    LilacZiyun閱讀 2,796評論 2 1
  • 前言 動畫的使用 是 Android 開發(fā)中常用的知識,其中,補間動畫重中之重 本文將獻上一份Android動畫簡...
    Carson帶你學安卓閱讀 27,474評論 16 139
  • 英語: 1牛津樹:增加1-26.1-27,復聽7本,發(fā)現(xiàn)點擊書的封面可以聽整個文章,雖然看了很多遍,他還是看的很來...
    小君愛未未閱讀 344評論 0 0
  • 今天在外面吃飯。 用筷子夾菜的時候發(fā)現(xiàn)旁邊一個同事面前掉下來一塊豆腐,從玻璃桌面上湯汁的走向,我判斷是剛才他沒夾好...
    烏卓閱讀 445評論 1 4