我创建了一个Android应用程序,它使用首选项列表来设置日夜模式主题.
我的styles.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>
Run Code Online (Sandbox Code Playgroud)
有谁知道如何将night和day模式应用到我的styles.xml
Sid*_*ele 10
您应该查看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>
Run Code Online (Sandbox Code Playgroud)
在这些模式之间切换的菜单:
这是 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>
Run Code Online (Sandbox Code Playgroud)
MainActivity他们在白天和夜晚模式之间切换的课程:
注意:我已经删除了其他对于此问题的上下文不必要的内容.
@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);
}
}
Run Code Online (Sandbox Code Playgroud)
在模式之间切换所需的全局变量:
private int mThemeId = -1;
Run Code Online (Sandbox Code Playgroud)
并且为了保存最后选择的模式,在onCreate()中:
if(savedInstanceState != null && savedInstanceState.getInt("theme", -1) != -1) {
mThemeId = savedInstanceState.getInt("theme");
this.setTheme(mThemeId);
}
Run Code Online (Sandbox Code Playgroud)
但是,请从SDK Manager下载示例并查看实际(整个)功能.
| 归档时间: |
|
| 查看次数: |
7456 次 |
| 最近记录: |