Android实现日夜间模式切换

对于阅读类的App来说,切换日夜间模式的功能,让用户能够在低光的环境中,也能很好的进行阅读。

如下图所示:

Android实现日夜间模式切换_第1张图片Android实现日夜间模式切换_第2张图片


废话不多说,直接看实现代码

在资源文件attrs中,定义好需要切换的属性



    
这里的bg_listview_item,是一个跟liestview的item相关的属性,这样,我们在切换日夜间模式的时候,就能改变liestview的item背景


接下来,我们在资源文件styles中,定义好两种主题

    
    
    
    
     
可以看到,在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);
     }







你可能感兴趣的:(Android)