博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android4: 动态切换界面风格
阅读量:6166 次
发布时间:2019-06-21

本文共 1209 字,大约阅读时间需要 4 分钟。

hot3.png

Theme.Light:

Theme.Dark:

1. styles.xml定义两套theme

[html] 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <style name="AppTheme.Light" parent=" :style/Theme.Holo.Light">  
  4.         <item name="menuIconToggleTitle">@drawable/ic_menu_toggle_title_holo_light</item>  
  5.         <item name="menuIconToggleTheme">@drawable/ic_menu_toggle_theme_holo_light</item>  
  6.     </style>  
  7.     <style name="AppTheme.Dark" parent=" :style/Theme.Holo">  
  8.         <item name="menuIconToggleTitle">@drawable/ic_menu_toggle_title_holo_dark</item>  
  9.         <item name="menuIconToggleTheme">@drawable/ic_menu_toggle_theme_holo_dark</item>  
  10.     </style>          
  11. </resources>  
2. 点击Day/Night时
[html] 
  1. case R.id.menu_toggleTheme:  
  2.     if (mThemeId == R.style.AppTheme_Dark) {  
  3.         mThemeId = R.style.AppTheme_Light;  
  4.     } else {  
  5.         mThemeId = R.style.AppTheme_Dark;  
  6.     }  
  7.     this.recreate();  
  8.     return true;  
3. theme id 保存为savedInstanceState
[html] 
  1. @Override  
  2. public void onSaveInstanceState (Bundle outState) {  
  3.     super.onSaveInstanceState(outState);  
  4.     outState.putInt("theme", mThemeId);  
  5. }  
4. onCreate中根据theme id 加载theme
[html] 
  1. if(savedInstanceState != null) {  
  2.   
  3.     if (savedInstanceState.getInt("theme", -1) != -1) {  
  4.       mThemeId = savedInstanceState.getInt("theme");  
  5.       this.setTheme(mThemeId);  
  6.     }  
  7. }  

转载于:https://my.oschina.net/bv10000/blog/127354

你可能感兴趣的文章
JetBrains GoLand macv2019.1.2中文版如何换成无牵引模式?
查看>>
电气火灾监控系统工作原理
查看>>
中使馆驳斥《金融时报》“中国网络威胁论”
查看>>
【挨踢人物传】茶乡浪子:“传奇”职场路,一生感谢情(第12期)
查看>>
我的友情链接
查看>>
c#关于数据库连接操作的案例
查看>>
聊聊最近接触的媒体查询!
查看>>
HAproxy指南之haproxy重定向应用(案例篇)
查看>>
学习 HTTP协议挺不错的一个类
查看>>
深入字节码 -- ASM 关键接口 MethodVisitor
查看>>
linux 文件权限
查看>>
Linux常用命令集合
查看>>
Oracle DML
查看>>
Linux - FHS文件系统层次标准
查看>>
报错:Invalid bound statement (not found)
查看>>
Linux GPT分区格式磁盘的相关操作
查看>>
通过Docker进程pid获取容器id
查看>>
L15.2 zabbix基础(2)组件说明介绍
查看>>
impdp 常见问题 10g/11g/12c 问题解决 ERIKXUE
查看>>
2013年1月工作小结 -- 上线后的懈怠
查看>>