在运行时更改样式属性

时间:2013-05-30 10:43:52

标签: android bitmap styles themes

我使用以下样式设置应用程序主题

    <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);

这里我的要求是我想用位图图像更改主题,我怎么能在运行时这样做?

由于

1 个答案:

答案 0 :(得分:1)

您可能希望查看同一个问题:android dynamically change style at runtime

在我看来,问题是通用样式属性可以强制屏幕重新布局,因此没有API可以在运行时更改样式 - 您需要重新创建屏幕(相同的方法是针对横向/纵向屏幕方向改变,其中重新创建Activity并且Android系统架构师的大脑在onCreate()中发明了savedState以简化(复杂?)该过程,然后发明片段以便更容易实现))

因此,改变风格通常意味着改变布局。但是你可以在运行时更改主题属性(根据上面的链接 - 我没有尝试过自己),它可以工作,因为它不需要重新布局。

作为一种解决方法,由于您需要为新布局重新创建视图,您可以通过应用不同的主题来简化代码,请参阅链接。