我使用以下样式设置应用程序主题
<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);
这里我的要求是我想用位图图像更改主题,我怎么能在运行时这样做?
由于
答案 0 :(得分:1)
您可能希望查看同一个问题:android dynamically change style at runtime
在我看来,问题是通用样式属性可以强制屏幕重新布局,因此没有API可以在运行时更改样式 - 您需要重新创建屏幕(相同的方法是针对横向/纵向屏幕方向改变,其中重新创建Activity并且Android系统架构师的大脑在onCreate()中发明了savedState以简化(复杂?)该过程,然后发明片段以便更容易实现))
因此,改变风格通常意味着改变布局。但是你可以在运行时更改主题属性(根据上面的链接 - 我没有尝试过自己),它可以工作,因为它不需要重新布局。
作为一种解决方法,由于您需要为新布局重新创建视图,您可以通过应用不同的主题来简化代码,请参阅链接。