如何以编程方式在 android 资源文件中设置项目 windowBackground
How to set item windowBackground in android resource file programmatically
我正在处理启动应用程序时弹出的启动画面,但我不想在 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 列表,这些 url 应该被随机设置为初始屏幕,因此必须动态设置初始屏幕。
我设法找到了以下代码,但我不知道如何从那里继续。
val styleId = resources.getIdentifier("SplashTheme", "style", packageName)
val drawableFromPath = Drawable.createFromPath("some image url")
我应该只使用片段吗?
正如@zedlabs 所说,您可能理解错了这个概念。你设置下面的属性看到的是
<item name="android:windowBackground">@drawable/splash</item>
您可以设置应用加载时看到的内容。通常它是一个白色屏幕,但通过更换它,您会看到您设置的内容。也是所有app的默认windowBackground
因此,如果您打算将其设置为动态,它不会真正起作用,因为您无法获取需要加载的资源应用程序,并且在它加载时此屏幕将不再可见.
您可以选择专门显示一段时间然后应用启动的自定义启动画面。
我建议检查一下:https://medium.com/android-news/the-complete-android-splash-screen-guide-c7db82bce565
我正在处理启动应用程序时弹出的启动画面,但我不想在 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 列表,这些 url 应该被随机设置为初始屏幕,因此必须动态设置初始屏幕。
我设法找到了以下代码,但我不知道如何从那里继续。
val styleId = resources.getIdentifier("SplashTheme", "style", packageName)
val drawableFromPath = Drawable.createFromPath("some image url")
我应该只使用片段吗?
正如@zedlabs 所说,您可能理解错了这个概念。你设置下面的属性看到的是
<item name="android:windowBackground">@drawable/splash</item>
您可以设置应用加载时看到的内容。通常它是一个白色屏幕,但通过更换它,您会看到您设置的内容。也是所有app的默认windowBackground
因此,如果您打算将其设置为动态,它不会真正起作用,因为您无法获取需要加载的资源应用程序,并且在它加载时此屏幕将不再可见.
您可以选择专门显示一段时间然后应用启动的自定义启动画面。
我建议检查一下:https://medium.com/android-news/the-complete-android-splash-screen-guide-c7db82bce565