美文网首页
Android 动画

Android 动画

作者: 撕裂的我 | 来源:发表于2017-10-13 14:05 被阅读0次
  • 旋转动画
 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"
              这 上面两句指的是组件在高度上不发生变化
       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);  //需要动画的控件去展示效果
  • 属性动画集
    下面是一个属性动画的集合,实现了平移和透明度的改变。里面有一个递归,一个控件实现该动画完毕后在让另一个控件实现该动画。
 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();
    }

相关文章

网友评论

      本文标题:Android 动画

      本文链接:https://www.haomeiwen.com/subject/teezyxtx.html