gpt4 book ai didi

android - 如何处理夜间模式的转换?

转载 作者:行者123 更新时间:2023-12-05 06:18:04 26 4
gpt4 key购买 nike

我们为我们的应用程序实现了夜间模式。除了它的过渡之外,它就像一个魅力。我们正在使用 Base Application 类来实现它。问题是无论我们尝试什么,我们都无法在配置更改时实现平稳过渡。

我们尝试在我们的风格中实现进入和退出动画。但它适用于整个 Activity 。所以它也会影响 Activity 的其他转换。所以它没有用。

从图像中可以看出,当配置更改时,屏幕上会出现黑色闪烁。

enter image description here

配置更改代码:

   public static void applyTheme(@NonNull String themePref) {
switch (themePref) {
case LIGHT_MODE: {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);

Log.d(Statics.LOG_TAG, "Applying day mode");
break;
}
case DARK_MODE: {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
Log.d(Statics.LOG_TAG, "Applying night mode");
break;
}
default: {
Log.d(Statics.LOG_TAG, "Applying automatic mode");
if (BuildCompat.isAtLeastP()) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
} else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY);
}
break;
}
}
}

感谢阅读本文。任何帮助表示赞赏。

最佳答案

请使用以下代码,它运行完美 -

//Does not work in Android Nugget
public void setDayNightMode(boolean day) {
if (day)
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
else
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
getWindow().setWindowAnimations(R.style.WindowAnimationFadeInOut);
recreate();
}

//Style
<style name="WindowAnimationFadeInOut">
<item name="@android:windowEnterAnimation">@anim/fade_in</item>
<item name="@android:windowExitAnimation">@anim/fade_out</item>
</style>



// fade in inside anim folder
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="1000"
android:fromAlpha="0"
android:interpolator="@android:anim/decelerate_interpolator"
android:toAlpha="1.0" />
</set>

// fade out inside anim folder
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="1500"
android:fromAlpha="1.0"
android:interpolator="@android:anim/decelerate_interpolator"
android:toAlpha="0" />
</set>

我测试过它是有效的

关于android - 如何处理夜间模式的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61407357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com