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

问题描述 投票:-2回答:4

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

android android-activity fadeout
4个回答
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>

2
投票

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

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

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


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();

0
投票

淡出和Fadein使用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

© www.soinside.com 2019 - 2024. All rights reserved.