Android实现日夜间模式切换
来源:互联网 发布:nodejs 遍历json对象 编辑:程序博客网 时间:2024/06/04 18:39
对于阅读类的App来说,切换日夜间模式的功能,让用户能够在低光的环境中,也能很好的进行阅读。
如下图所示:
废话不多说,直接看实现代码
在资源文件attrs中,定义好需要切换的属性
<?xml version="1.0" encoding="utf-8"?><resources> <attr name="bg_listview_item" format="reference"/></resources>这里的bg_listview_item,是一个跟liestview的item相关的属性,这样,我们在切换日夜间模式的时候,就能改变liestview的item背景
接下来,我们在资源文件styles中,定义好两种主题
<style name="AppBaseTheme_Day" parent="android:Theme.Holo.Light"></style> <style name="AppBaseTheme_Night" parent="android:Theme.Holo"></style> <style name="AppTheme_Day" parent="AppBaseTheme_Day"> <item name="bg_listview_item">@drawable/listview_item_selector_day</item> </style> <style name="AppTheme_Night" parent="AppBaseTheme_Night"> <item name="bg_listview_item">@drawable/listview_item_selector_night</item> </style>可以看到,在AppTheme_Day中,属性bg_listview_item引用listview_item_selector_day;在AppTheme_Night中,属性bg_listview_item引用listview_item_selector_night;
在Listview的子Item的布局文件中,background只需要引用前面定义好的属性,这样就能够根据不同的模式,ListView的子Item应用不同的背景颜色
android:background="?bg_listview_item"
这样当我们点击切换按钮的时候,就可以手动切换模式了
Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit();editor.putBoolean("Mode", !isNight);editor.commit();finish();overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);startActivity(this.getIntent());
下面,就是在Activity的oncreate()中,实现日夜间模式的切换
isNight = sharedPreferences.getBoolean("Mode", false);if (isNight) {setTheme(R.style.AppTheme_Night); }else {setTheme(R.style.AppTheme_Day); }
0 0
- Android实现日夜间模式切换
- Android 切换日夜间模式
- Android日夜间模式切换
- Android日夜间切换模式
- Android最简单实现日夜间模式切换
- 简单实现日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- 日夜间模式切换
- android日夜间模式切换动画
- javascript defer和async属性
- 线性表之单循环链表
- Android之UI学习篇:使用GridView实现九宫格的菜单
- Linux automake使用教程实例
- android 中ImageView 无法居中
- Android实现日夜间模式切换
- 语音群呼电话营销优势
- spring定时任务的配置
- SQlite 增删改
- Mac下用brew搭建PHP(LNMP/LAMP)开发环境
- 不同交换机的技术参数
- JAVA基础必备(十)——异常
- 高性能网络编程5--IO复用与并发编程
- matlab访问相对路径