Android | APP设置启动页(Java)
Posted jaycola99
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android | APP设置启动页(Java)相关的知识,希望对你有一定的参考价值。
新建启动页Activity
新建一个SplashActivity,修改其在androidMainfest中的配置,改为启动文件。同时原项目的MainActivity中的<intent-filter>删除
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
当启动app时,系统需要加载很多内容,故会产生一定的延迟,其结果是会出现白屏或黑屏(由默认主题而定)。加载layout需要事件。解决的方法同样在AndroidMainfest中解决,在启动activity中加入选择的主题即可即可
<activity android:name=".StartActivity"
android:theme="@style/StartActivityTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
创建主题
主题文件位于/res/values/themes
<style name="SplashActivityTheme" parent="android:Theme.Holo.Light.NoActionBar">
<item name="android:windowBackground">@mipmap/background</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
这是我新建的style,其中windowsBackground属性为初始化背景图片。可以观察手机app上启动的过程中,一开始只有一张图片,然后再跳转或者添加了一些动画效果。因为这些跳转的结果和动画效果需要初始化,故放张图片卡卡时间。除了background其余时设置状态栏和手机的导航栏会不会显示,有很多种方法。
错误
如果直接添加主题,会报错
Unable to start activity ComponentInfo{com.jay.startactivity/com.jay.startactivity.SplashActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
因为当在AndroidMainfest中设置主题时,选择了自己创建的主题,根据代码可以看出,新建theme的parent是android:Theme.Holo.Light.NoActionBar。但是我们利用Android Studio创建新的Activity时默认为继承于AppCompatActivity
public class StartActivity extends AppCompatActivity
该activity类型有一个默认的主题Theme.AppCompat theme,而你所新建的主题当然不属于这个主题,解决方法很简单,将继承的父类改为Activity即可。
public class StartActivity extends Activity
以上是关于Android | APP设置启动页(Java)的主要内容,如果未能解决你的问题,请参考以下文章
移动端app 使用cordova设置了启动页 怎么再设置一个跳过启动页
任务':app:transformClassesWithDexBuilderForDebugAndroidTest'的执行失败,java.lang.RuntimeException(代