管理android应用程序主题的最佳方式



在我的程序中,我必须以编程方式切换应用程序主题。也就是说,有一个选项可以切换浅色和深色主题。最佳实践是什么?我可以创建和管理样式集吗?例如,我有这个文本视图和按钮。

<Button
                android:id="@+id/btn"
                style="@style/BT_list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/OK" />
            <TextView
                android:id="@+id/tv"
                style="@style/TText"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="@string/msg" />

我有这种风格:

<style name="BT_list">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">30dp</item>
    <item name="android:textColor">@color/green_color</item>
    <item name="android:gravity">center</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
    <item name="android:layout_marginLeft">0dp</item>
    <item name="android:layout_marginRight">0dp</item>
    <item name="android:textSize">15sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:background">@drawable/grad</item>
</style>

<style name="TText">
    <item name="android:textColor">@color/text_color</item>
    <item name="android:background">@color/white"</item>
</style>

如何用类似setTheme();的东西以编程方式更改两种(可能更多)样式的值?

您可以创建一个偏好活动,为用户提供更改主题的选项。之后,在您想要主题化的活动的OnCreate方法中,您可以使用:

    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(this);
    String userTheme = prefs.getString("theme", "1");
    if (userTheme.equals("1"))
        setTheme(R.style.ThemeDark);
    else if (userTheme.equals("2"))
        setTheme(R.style.ThemeLight);

在你的Styles.xml中,你可以添加

    <style name="ThemeDark" parent="Holo.Theme">
        <!-- your changes go here -->
    </style>
   <style name="ThemeLight" parent="Holo.Theme.Light">
        <!-- your changes go here -->
    </style>

注意:这是我自己在ABS和HoloEverywhere中使用的主题更改方法。如果你不使用这些库,这将不起作用

相关内容

  • 没有找到相关文章

最新更新