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