白天夜间模式切换

点击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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值