白天夜间模式切换

来源:互联网 发布:国际网络购物平台 编辑:程序博客网 时间:2024/05/16 01:46

点击button实现模式的切换
布局中的代码

<span style="font-size:18px;"><code class="hljs xml has-numbering"><span class="hljs-tag"><<span class="hljs-title">RelativeLayout</span> <span class="hljs-attribute">xmlns:android</span>=<span class="hljs-value">"http://schemas.android.com/apk/res/android"</span>    <span class="hljs-attribute">xmlns:tools</span>=<span class="hljs-value">"http://schemas.android.com/tools"</span>    <span class="hljs-attribute">android:layout_width</span>=<span class="hljs-value">"match_parent"</span>    <span class="hljs-attribute">android:layout_height</span>=<span class="hljs-value">"match_parent"</span>    <span class="hljs-attribute">tools:context</span>=<span class="hljs-value">".MainActivity"</span> ></span>    <span class="hljs-tag"><<span class="hljs-title">Button</span>        <span class="hljs-attribute">android:id</span>=<span class="hljs-value">"@+id/changemode"</span>        <span class="hljs-attribute">android:layout_width</span>=<span class="hljs-value">"fill_parent"</span>        <span class="hljs-attribute">android:layout_height</span>=<span class="hljs-value">"wrap_content"</span>        <span class="hljs-attribute">android:layout_alignParentLeft</span>=<span class="hljs-value">"true"</span>        <span class="hljs-attribute">android:layout_alignParentTop</span>=<span class="hljs-value">"true"</span>        <span class="hljs-attribute">android:text</span>=<span class="hljs-value">"切换白天夜间模式"</span> /></span><span class="hljs-tag"></<span class="hljs-title">RelativeLayout</span>></span></code></span>

封装的工具包代码

<span style="font-size:18px;"><code class="hljs cs has-numbering">import android.content.Context;import android.content.SharedPreferences;<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> SPUtils {    <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> SharedPreferences sp;    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">put</span>(Context ct, String key, String <span class="hljs-keyword">value</span>) {        <span class="hljs-keyword">if</span> (sp == <span class="hljs-keyword">null</span>)            sp = ct.getSharedPreferences(key, <span class="hljs-number">0</span>);            sp.edit().putString(key, <span class="hljs-keyword">value</span>).commit();        }    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> String <span class="hljs-title">get</span>(Context ct, String key,String <span class="hljs-keyword">value</span>) {        <span class="hljs-keyword">if</span> (sp == <span class="hljs-keyword">null</span>)            sp = ct.getSharedPreferences(key, <span class="hljs-number">0</span>);        <span class="hljs-keyword">if</span> (sp.getString(key, <span class="hljs-string">""</span>) != <span class="hljs-keyword">null</span>) {            <span class="hljs-keyword">return</span> sp.getString(key, <span class="hljs-string">""</span>);        }        <span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;    }}</code></span>

//工具包的帮助 在主类中调用就能实现模式的切换了 话不多说 下面就让我们展示主类中的代码

<span style="font-size:18px;"><code class="hljs java has-numbering"><span class="hljs-keyword">import</span> android.os.Bundle;<span class="hljs-keyword">import</span> android.app.Activity;<span class="hljs-keyword">import</span> android.view.View;<span class="hljs-keyword">import</span> android.widget.Button;<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MainActivity</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Activity</span> {</span>    <span class="hljs-keyword">private</span> Button changemode;    <span class="hljs-annotation">@Override</span>    <span class="hljs-keyword">protected</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onCreate</span>(Bundle savedInstanceState) {        <span class="hljs-keyword">if</span> (SPUtils.get(<span class="hljs-keyword">this</span>, <span class="hljs-string">"theme"</span>, <span class="hljs-string">"dayTheme"</span>).equals(<span class="hljs-string">"dayTheme"</span>)) {            setTheme(R.style.dayTheme);        } <span class="hljs-keyword">else</span> {            setTheme(R.style.nightTheme);        }        <span class="hljs-keyword">super</span>.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        changemode=(Button) findViewById(R.id.changemode);        changemode.setOnClickListener(<span class="hljs-keyword">new</span> View.OnClickListener() {            <span class="hljs-annotation">@Override</span>            <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onClick</span>(View v) {                <span class="hljs-keyword">if</span> (SPUtils.get(MainActivity.<span class="hljs-keyword">this</span>, <span class="hljs-string">"theme"</span>, <span class="hljs-string">"dayTheme"</span>).equals(                        <span class="hljs-string">"dayTheme"</span>)) {                    SPUtils.put(MainActivity.<span class="hljs-keyword">this</span>, <span class="hljs-string">"theme"</span>, <span class="hljs-string">"nightTheme"</span>);                } <span class="hljs-keyword">else</span> {                    SPUtils.put(MainActivity.<span class="hljs-keyword">this</span>, <span class="hljs-string">"theme"</span>, <span class="hljs-string">"dayTheme"</span>);                }                recreate();            }        });    }}</code></span>

当然了 这些还不够 我们的模式切换是主题的调用 下面是我们白天和夜间的主题模式

<span style="font-size:18px;"><code class="hljs xml has-numbering"> <span class="hljs-comment"><!--白天主题--></span>    <span class="hljs-tag"><<span class="hljs-title">style</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"dayTheme"</span> <span class="hljs-attribute">parent</span>=<span class="hljs-value">"AppTheme"</span>></span><span class="css">          <<span class="hljs-tag">item</span> <span class="hljs-tag">name</span>="<span class="hljs-tag">android</span><span class="hljs-pseudo">:textColor"</span>><span class="hljs-id">#525252</span></<span class="hljs-tag">item</span>>          <<span class="hljs-tag">item</span> <span class="hljs-tag">name</span>="<span class="hljs-tag">android</span><span class="hljs-pseudo">:background"</span>><span class="hljs-id">#f7f7f7</span></<span class="hljs-tag">item</span>>    </span><span class="hljs-tag"></<span class="hljs-title">style</span>></span>    <span class="hljs-comment"><!--夜间主题--></span>    <span class="hljs-tag"><<span class="hljs-title">style</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"nightTheme"</span> <span class="hljs-attribute">parent</span>=<span class="hljs-value">"AppTheme"</span>></span><span class="css">        <<span class="hljs-tag">item</span> <span class="hljs-tag">name</span>="<span class="hljs-tag">android</span><span class="hljs-pseudo">:textColor"</span>><span class="hljs-id">#868a96</span></<span class="hljs-tag">item</span>>        <<span class="hljs-tag">item</span> <span class="hljs-tag">name</span>="<span class="hljs-tag">android</span><span class="hljs-pseudo">:background"</span>><span class="hljs-id">#1e1e2a</span> </<span class="hljs-tag">item</span>>    </span><span class="hljs-tag"></<span class="hljs-title">style</span>></span></code></span>
0 0