首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >活动过渡黑屏

活动过渡黑屏
EN

Stack Overflow用户
提问于 2019-03-04 00:33:00
回答 1查看 1.9K关注 0票数 5

所以我有WelcomeActivity -> HomeActivity和closing WelcomeActivity with finish()/supportFinishAfterTransition()。我想做一个slideTransition或fadeTransition (顺便提一下,对其他建议开放)。

我对此进行了研究,结果发现有几种方法可以做到这一点:要么使用使用anim.xml文件的overridePendingTransition,要么使用使用transition.xml文件的过渡(来自android docs)……

这两个我都试过了,都给了我不想要的结果:

  1. 的动画:我得到了这个丑陋的中间过渡黑屏:

fade_in.xml:

代码语言:javascript
复制
    <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:

代码语言:javascript
复制
    <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之前完成)

代码语言:javascript
复制
    startActivity(Intent(this, HomeActivity::class.java))
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
    finish()

用于过渡的

  1. :我无法让WelcomeActivity正常关闭:它要么在动画开始之前关闭,要么根本不关闭。我正在跟踪android docs..。我也尝试过这个:

style.xml

代码语言:javascript
复制
    <item name="android:windowActivityTransitions">true</item>
    <item name="android:windowEnterTransition">@transition/enter_fade</item>
    <item name="android:windowExitTransition">@transition/exit_fade</item>

我的另一个问题是,我应该采用哪种方法?谷歌是不是为了开始新的活动而推动了anims的过渡?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-04 01:56:56

我总是做的就是启动一个活动(不管你怎么想,ways都是listed here)。

我使用这两个文件来使用幻灯片切换:

slide_out_left.xml:

代码语言:javascript
复制
<?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:

代码语言:javascript
复制
<?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):

代码语言:javascript
复制
startActivity(MainActivity.this, SecondActivity.class);
overridePendingTransition(R.anim.slide_in_right.xml, R.anim.slide_in_left.xml);
finish();

使用它,活动从右到左平滑地退出,让位于新的活动。

对于黑屏,在AndroidManifest.xml文件中将该活动的主题设置为半透明

代码语言:javascript
复制
android:theme="@android:style/Theme.Translucent"

因此,您的代码将如下所示

代码语言:javascript
复制
<activity android:name=".Activity"
        android:theme="@android:style/Theme.Translucent" />

黑屏问题的答案来自:https://stackoverflow.com/a/6468734/9819031

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54971082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档