所以我有WelcomeActivity -> HomeActivity和closing WelcomeActivity with finish()/supportFinishAfterTransition()
。我想做一个slideTransition或fadeTransition (顺便提一下,对其他建议开放)。
我对此进行了研究,结果发现有几种方法可以做到这一点:要么使用使用anim.xml文件的overridePendingTransition
,要么使用使用transition.xml文件的过渡(来自android docs)……
这两个我都试过了,都给了我不想要的结果:
fade_in.xml:
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="300" />
fade_out.xml:
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:zAdjustment="top"
android:duration="300" />
WelcomeActivity:(我试过在overridePendingTransaction之前完成)
startActivity(Intent(this, HomeActivity::class.java))
overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
finish()
用于过渡的
style.xml
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowEnterTransition">@transition/enter_fade</item>
<item name="android:windowExitTransition">@transition/exit_fade</item>
我的另一个问题是,我应该采用哪种方法?谷歌是不是为了开始新的活动而推动了anims的过渡?
发布于 2019-03-04 01:56:56
我总是做的就是启动一个活动(不管你怎么想,ways都是listed here)。
我使用这两个文件来使用幻灯片切换:
slide_out_left.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="0"
android:toXDelta="-100%p" />
</set>
slide_in_right.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0" />
</set>
然后我开始一个类似这样的活动(这是java):
startActivity(MainActivity.this, SecondActivity.class);
overridePendingTransition(R.anim.slide_in_right.xml, R.anim.slide_in_left.xml);
finish();
使用它,活动从右到左平滑地退出,让位于新的活动。
对于黑屏,在AndroidManifest.xml
文件中将该活动的主题设置为半透明
android:theme="@android:style/Theme.Translucent"
因此,您的代码将如下所示
<activity android:name=".Activity"
android:theme="@android:style/Theme.Translucent" />
https://stackoverflow.com/questions/54971082
复制相似问题