【发布时间】:2021-09-05 17:55:44
【问题描述】:
我正在处理启动应用程序时弹出的启动画面,但我不想在 Activity 中膨胀布局,而是想为其中包含图像资源的启动 Activity 设置一个主题。
AndroidManifest.xml
<activity
android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash</item>
</style>
</resources>
我的问题是:
是否可以通过代码更改<item name="android:windowBackground">@drawable/splash</item>?
我从网络收到了应随机设置为初始屏幕的图像 url 列表,因此必须动态设置初始屏幕。
我设法找到了以下代码,但我只是不知道如何从那里开始。
val styleId = resources.getIdentifier("SplashTheme", "style", packageName)
val drawableFromPath = Drawable.createFromPath("some image url")
我应该只使用片段吗?
【问题讨论】:
-
如果您使用闪屏来显示从网络接收到的内容,那么您就错过了闪屏的实际用途
-
感谢 zedlabs 的反馈!是因为启动画面的目的是在获取数据的同时创建应用程序的初始布局吗?我应该找到更好的方式来呈现图像。
-
启动画面的目的是在应用加载初始数据时向用户显示一些东西(主要是静态矢量),您可以将图像加载为初始数据
标签: android kotlin android-activity android-manifest