我使用以下样式设置应用程序主题
<style name="Background1" parent="@android:style/Theme.NoTitleBar.Fullscreen">
<item name="android:windowBackground">@drawable/bigl_2</item>
<item name="android:windowNoTitle">true</item>
</style>
使用这个方法:
setTheme(R.style.background1);
这里我的要求是我想用位图图像改变主题,我如何在运行时做到这一点?
谢谢
你可能想看看同样的问题:android在运行时动态改变样式
在我看来,问题是通用的样式属性可以强制屏幕重新布局,所以没有API可以在运行时改变样式——你需要重新创建屏幕(同样的方法也适用于横向/纵向屏幕方向的改变,其中Activity被重新创建,Android系统架构师的大大脑在onCreate()中发明了savedState来简化(复杂?)这个过程,然后发明了Fragments来简化这个过程)
所以,改变样式通常意味着改变布局。但是你可以在运行时改变主题属性(根据上面的链接-我自己没有尝试过),它会工作,因为它不需要重新布局。
作为一种解决方法,因为您需要为新布局重新创建视图,您可以通过应用不同的主题来简化代码,参见链接