Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 在app启动期间更新主题的最快方式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
目前,我在我的应用程序中提供了2个主题,基于用户的最后选择 – 黑暗主题和浅色主题.

在主要活动启动期间,我将执行以下操作.

public class MyFragmentActivity extends FragmentActivity {
    @Override
    public void onCreate(Bundle savedInstanceStatE) {
        // getUserLastThemeChoice will either return R.style.Theme_My_Light or 
        // R.style.Theme_My_Dark.
        this.setTheme(getUserLastThemeChoice());

        super.onCreate(savedInstanceStatE);

在我的AndroidManifest.xml中,我有以下内容

<application
    ...
    android:theme="@style/Theme.My.Dark" >

由于AndroidManifest.xml中的硬编码值,如果用户先前的选择是轻量级主题,我将观察以下内容.

>由于AndroidManifest.xml,应用程序以黑暗主题启动
>一会儿……
>由于主活动中的this.setTheme,应用程序将更改为白色主题

在那里我可以避免这种过渡观察吗?就是这样,根据他们的最后选择直接呈现给用户.

p / s注意,如果从清单中删除主题信息,它将没有多大帮助.由于系统认使用holo dark.您仍然会观察到过渡,特别是在慢速设备中.

解决方法

隐藏主题操作,特别是在应用程序启动时很棘手.不幸的是,没有办法一致地删除那个初始转换,因为没有人知道运行它的设备有多快/慢.在为主要活动的布局膨胀之前,Android将始终在主题显示空白背景.

但隐藏它有一个技巧.用户打开应用时显示的启动画面,并在加载初始活动后淡出.这样,启动屏幕隐藏了主题转换,而不会刺激用户.飞溅屏幕得到了一些当之无愧的仇恨,但这样的情况确实证明了它们的使用.同样,我不知道您的应用程序的具体细节,但您必须权衡具有启动画面和平滑过渡与没有启动画面和不和谐过渡的优缺点.

有很多方法可以实现启动画面.在你的情况下,我会尝试创建一个具有中性主题的启动器活动,并为启动画面和主要活动之间的过渡应用平滑动画,如下所示:

startActivity( new Intent( LauncherActivity.this,MainActivity.class ) );
overridePendingTransition( R.anim.fade_in,R.anim.fade_out );

和动画:

<!-- fadeout -->
<?xml version="1.0" encoding="UTF-8"?>
<alpha xmlns:android="http://scheR_398_11845@as.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="300" />

<!-- fadein -->
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://scheR_398_11845@as.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="300" />

大佬总结

以上是大佬教程为你收集整理的android – 在app启动期间更新主题的最快方式全部内容,希望文章能够帮你解决android – 在app启动期间更新主题的最快方式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。