Gif启动页
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<!--<item name="android:windowIsTranslucent">true</item>-->
</style>
<!-- 应用启动页(StartingWindow)的theme -->
<style name="AppTheme.StartingWindowTheme" parent="AppTheme">
<!-- 可以设置成纯颜色(设置一个和Activity UI相似的背景) -->
<!--<item name="android:windowBackground">@color/startingwindow_bgcolor</item>-->
<!--也可以设置成一张图片 -->
<item name="android:windowBackground">@drawable/launcher_static</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowFullscreen">true</item>
</style>
其中注意的是@drawable/launcher_static 代码如下
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="@color/contentColor" />
</shape>
</item>
<item android:bottom="@dimen/dp_30">
<bitmap
android:gravity="center"
android:src="@drawable/luancher_static_body" />
</item>
</layer-list>
我的启动页如下图,第一个是一个gif,但是在刚启动的时候必须放一张零时图片,这张图片不能为gif的第一帧,不然图片会有拉伸等问题。在启动页启动后我使用的是glide加载
Glide.with(context).load(drawable).diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(new GlideDrawableImageViewTarget(imageView, 1));
还有一个小问题就是虚拟bar的手机我们需要隐藏一下虚拟bar,onCreate方法里面加上这段代码。
WindowManager.LayoutParams params = getWindow().getAttributes();
params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|View.SYSTEM_UI_FLAG_IMMERSIVE;
getWindow().setAttributes(params);