gpt4 book ai didi

android - 如何在android应用程序中设置日夜主题

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:16:35 26 4
gpt4 key购买 nike

我创建了一个 Android 应用程序,它使用首选项列表来设置日夜模式主题。

我的样式.xml

<style name="Theme.FullScreen" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen"></style>

<style name="PreferencesTheme" parent="android:Theme.Light">
<item name="android:background">#FFEAEAEA</item>
</style>

<style name="PreferencesTheme" parent="android:Theme.Light">
<item name="android:windowBackground">@drawable/ic_icon_settings</item>
</style>

有谁知道如何将夜间和白天模式应用于我的 styles.xml

最佳答案

您应该查看 Android 3.2 API13 示例应用程序中的 HoneycombGallery 示例。

他们实现这个的方式是:

在您的 styles.xml 中声明两个主题:

<style name="ActionBar" parent="@android:style/Widget.Holo.ActionBar" />

<style name="ActionBar.Light" parent="@style/ActionBar">
<item name="android:background">@color/actionbar_background_light</item>
</style>

<style name="ActionBar.Dark" parent="@style/ActionBar">
<item name="android:background">@color/actionbar_background_dark</item>
</style>

<style name="AppTheme.Light" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBar.Light</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="listDragShadowBackground">@android:color/background_light</item>
<item name="menuIconCamera">@drawable/ic_menu_camera_holo_light</item>
<item name="menuIconToggle">@drawable/ic_menu_toggle_holo_light</item>
<item name="menuIconShare">@drawable/ic_menu_share_holo_light</item>
</style>

<style name="AppTheme.Dark" parent="@android:style/Theme.Holo">
<item name="android:actionBarStyle">@style/ActionBar.Dark</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="listDragShadowBackground">@android:color/background_dark</item>
<item name="menuIconCamera">@drawable/ic_menu_camera_holo_dark</item>
<item name="menuIconToggle">@drawable/ic_menu_toggle_holo_dark</item>
<item name="menuIconShare">@drawable/ic_menu_share_holo_dark</item>
</style>

在模式之间切换的菜单:

这是main_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/toggleTheme"
android:title="Day/Night"
android:showAsAction="never" />
</menu>

还有 MainActivity 类,它们在DayNight 模式之间切换:

注意:我已经删除了这个问题的上下文中不需要的其他内容。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {

case R.id.toggleTheme:
if (mThemeId == R.style.AppTheme_Dark) {
mThemeId = R.style.AppTheme_Light;
} else {
mThemeId = R.style.AppTheme_Dark;
}
this.recreate();
return true;

default:
return super.onOptionsItemSelected(item);
}
}

切换模式所需的全局变量:

private int mThemeId = -1;

为了保存最后选择的模式,在 onCreate() 中:

if(savedInstanceState != null && savedInstanceState.getInt("theme", -1) != -1) {
mThemeId = savedInstanceState.getInt("theme");
this.setTheme(mThemeId);
}

但请务必从 SDK 管理器下载示例并查看实际(完整)功能。

关于android - 如何在android应用程序中设置日夜主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13561786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com