实现的效果图
使用Android Support Library 系统自带的方式实现很简单类似多语言
1 在res 下面新建一个values-night 文件 然后把value 里面的style 和color 复制进去 修改style 里面的主题为夜间模式
<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
在value 文件里面的color 的颜色值为白天
<color name="color_text">#1E1E1E</color>
<color name="color_bg">#FFF68F</color>
在values-night 里面文件夹 的color的颜色值为黑夜
<color name="color_text">#FFFFFF</color>
<color name="color_bg">#1E1E1E</color>
在activity 里面的代码如下
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
recreate();
}
});
findViewById(R.id.night).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
recreate();
}
});
}
}
处理白天/黑夜模式切换的时候闪屏方法
在主题下面添加动画
<item name="android:windowAnimationStyle">@android:style/Animation.Toast</item>
具体位置
这样就实现了 上面gif的效果了。。。