主题应用-夜间模式

Android主题实现应用夜间模式功能

其实利用主题实现夜间模式功能已经算是比较成熟的解决方案;但是自己先前一直死磕在用主题,要重建页面;要重建页面就会出现重新绘制View,不能马上呈现夜间模式:

其实利用一些基础知识还是可以达到重建犯罪现场(姑且这样说),欺骗一下用户,我们没有重建页面,而是真的只切换了夜间模式。

先看效果图:
![日、夜间模式切换](https://img-blog.csdn.net/20150306183448074)

实现要点:

  • 定义日、夜间两套主题
  • 页面做好数据缓存,以便恢复页面数据,实现切换的立即呈现(犯罪现场)
  • 切换的时候页面添加动画效果,衔接上面自然;即提升用户体验

代码部分

主题相关:

<style name="AppBaseTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <item name="@android:windowAnimationStyle">@style/MainActivity
    style>

    <style name="AppTheme" parent="AppBaseTheme">
        <item name="ViewBackground">@android:color/white
        "ViewTextColor">@android:color/black
    style>

    <style name="AppTheme_Night" parent="AppBaseTheme">
        <item name="ViewBackground">@android:color/black
        "ViewTextColor">@android:color/white
    style>

定义页面切换:

    <style name="MainActivity">
        <item name="android:activityOpenEnterAnimation">@anim/alpha_fading_in
        "android:activityOpenExitAnimation">@anim/alpha
        "android:activityCloseEnterAnimation">@anim/alpha
        "android:activityCloseExitAnimation">@anim/alpha_fading_in
    style>

你可能感兴趣的:(android)