日夜间模式切换

来源:互联网 发布:unity3d大作动画 编辑:程序博客网 时间:2024/05/01 11:13

styles中写上

<!--白天主题-->
<style name="DayTheme"parent="AppTheme">
    <item name="android:textColor">#525252</item>
    <item name="android:background">#f7f7f7</item>

</style>

<!--夜间主题    #1e1e2a-->
<style name="NightTheme"parent="AppTheme">
    <item name="android:textColor">#868a96</item>
    <item name="android:background">#272727</item>

</style>

 

oncreate方法上面写

private booleanisNightmode =false;

 

 

mainactivity中的setContentView前面写

SharedPreferences sharedPreferences = getSharedPreferences("nightAndDay",Context.MODE_PRIVATE);
boolean isnight1 = sharedPreferences.getBoolean("isNightmode", false);


if (isnight1){
    setTheme(R.style.NightTheme);
}else{
    setTheme(R.style.DayTheme);
}

setContentView下面写

intposition = sharedPreferences.getInt("position",0);

transaction.replace(R.id.lin_lay,fragments.get(position));
transaction.commit();

SharedPreferences.Editor edit = sharedPreferences.edit();
edit.putInt("position",0);
edit.commit()

 

在你的fragment类里写

private booleanisNightmode =false;

 

在你的button监听里面写

SharedPreferences sharedPreferences = getActivity().getSharedPreferences("nightAndDay",getActivity().MODE_PRIVATE);

SharedPreferences.Editor edit = sharedPreferences.edit();

boolean isnight1 = sharedPreferences.getBoolean("isNightmode", false);

if (!isnight1){

    getActivity().setTheme(R.style.NightTheme);
    edit.putBoolean("isNightmode",true);
    edit.putInt("position",3);
    edit.commit();
    Toast.makeText(getActivity(),"1",Toast.LENGTH_SHORT).show();

}else{
    getActivity().setTheme(R.style.DayTheme);
    edit.putBoolean("isNightmode",false);
    edit.putInt("position",3);
    edit.commit();
    Toast.makeText(getActivity(),"2",Toast.LENGTH_SHORT).show();
}

getActivity().recreate();

0 0
原创粉丝点击