我们完成后如何淡出活动?

时间:2015-05-14 08:25:41

标签: android android-activity fadeout

我有一个带有按钮的Activity。如果用户点击Button,我会启动服务并完成此Activity。我希望淡出它。怎么做?我试过一些方法,但似乎没有用。

4 个答案:

答案 0 :(得分:5)

MainActivity.this.overridePendingTransition(R.anim.slide2, R.anim.slide);

使用上面的代码。

这是淡出动画代码。

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

    <alpha
        android:duration="1000"
        android:fromAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="0.0" />

</set>

答案 1 :(得分:2)

我发现的最小和最好的方法是放置代码:

finish();
overridePendingTransition(0, android.R.anim.fade_out);

进入OnClickListener,或者你想用fade完成活动的地方。

答案 2 :(得分:1)

我想我用ObjectAnimator解决了我的问题。

ObjectAnimator objAnimator = ObjectAnimator.ofFloat(mainView, View.ALPHA, 1.0f, 0.0f);
            obj.setDuration(2000).addListener(new AnimatorListener() {

                @Override
                public void onAnimationStart(Animator animation) {

                }

                @Override
                public void onAnimationRepeat(Animator animation) {

                }

                @Override
                public void onAnimationEnd(Animator animation) {
                    finish();
                }

                @Override
                public void onAnimationCancel(Animator animation) {
                }
            });
            objAnimator.start();

答案 3 :(得分:0)

使用Android(java)

淡出和淡化
Animation fadeIn = new AlphaAnimation(0, 1); // fadein
fadeIn.setInterpolator(new DecelerateInterpolator()); //add this
fadeIn.setDuration(1000);

Animation fadeOut = new AlphaAnimation(1, 0);//Fadeout
fadeOut.setInterpolator(new AccelerateInterpolator()); //and this
fadeOut.setStartOffset(1000);
fadeOut.setDuration(1000);

AnimationSet animation = new AnimationSet(false); //change to false
animation.addAnimation(fadeIn);
animation.addAnimation(fadeOut);
this.setAnimation(animation);

我相信这有助于您更多地参考此link