1

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

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

这里我的要求是我想用位图图像更改主题,我该如何在运行时做到这一点?

谢谢

4

1 回答 1

1

你可能想看看同样的问题:android dynamic change style at runtime

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

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

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

于 2013-11-04T21:51:53.987 回答