白天夜间模式切换(2)

<span style="font-size:18px;"><code class="hljs java has-numbering"><span class="hljs-keyword">import</span> android.support.v7.app.ActionBarActivity;
<span class="hljs-keyword">import</span> android.content.Context;
<span class="hljs-keyword">import</span> android.content.SharedPreferences;
<span class="hljs-keyword">import</span> android.content.SharedPreferences.Editor;
<span class="hljs-keyword">import</span> android.graphics.Color;
<span class="hljs-keyword">import</span> android.graphics.PixelFormat;
<span class="hljs-keyword">import</span> android.os.Bundle;
<span class="hljs-keyword">import</span> android.view.Gravity;
<span class="hljs-keyword">import</span> android.view.View;
<span class="hljs-keyword">import</span> android.view.View.OnClickListener;
<span class="hljs-keyword">import</span> android.view.WindowManager;
<span class="hljs-keyword">import</span> android.view.WindowManager.LayoutParams;
<span class="hljs-keyword">import</span> android.widget.Button;
<span class="hljs-keyword">import</span> android.widget.TextView;

<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">ActionBarActivity</span> {</span>
    <span class="hljs-comment">// 获得窗体的管理者</span>
    <span class="hljs-keyword">private</span> WindowManager mWindowManager;
    <span class="hljs-keyword">private</span> Button dayandnight;
    <span class="hljs-keyword">private</span> SharedPreferences skinSp;
    <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> flag = <span class="hljs-number">0</span>;
    <span class="hljs-keyword">private</span> View myView;
    <span class="hljs-keyword">private</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">static</span> String DAY = <span class="hljs-string">"day"</span>;
    <span class="hljs-keyword">private</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">static</span> String NIGHT = <span class="hljs-string">"night"</span>;

    <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">super</span>.onCreate(savedInstanceState);
        <span class="hljs-comment">// 获得系统服务的窗体服务 在加载视图之前实现</span>
        mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);<span class="hljs-comment">// 根据上下文获得窗体的服务</span>
        setContentView(R.layout.activity_main);
        init();
    }
    <span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">init</span>() {
        <span class="hljs-comment">// 获得轻量级存储类</span>
        skinSp = <span class="hljs-keyword">this</span>.getSharedPreferences(<span class="hljs-string">"skinchange"</span>, MODE_PRIVATE);<span class="hljs-comment">// 私有模式</span>
        dayandnight = (Button) findViewById(R.id.dayandnight);
        dayandnight.setOnClickListener(<span class="hljs-keyword">new</span> 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> (flag % <span class="hljs-number">2</span> == <span class="hljs-number">0</span>) {<span class="hljs-comment">// 这个是白天的模式</span>
                    night();
                    dayandnight.setText(<span class="hljs-string">"白天模式"</span>);
                    dayandnight.setTextColor(Color.WHITE);
                    flag++;
                } <span class="hljs-keyword">else</span> {
                    Day();
                    dayandnight.setText(<span class="hljs-string">"夜间模式"</span>);
                    dayandnight.setTextColor(Color.BLACK);
                    flag++;
                }
            }
        });
        <span class="hljs-comment">// 获得是夜间模式还是白天的模式</span>
        String mode = skinSp.getString(<span class="hljs-string">"skin"</span>, <span class="hljs-string">""</span>);
        <span class="hljs-keyword">if</span> (mode != <span class="hljs-keyword">null</span> || !mode.equals(<span class="hljs-string">""</span>)) {
            <span class="hljs-keyword">if</span> (mode.equals(NIGHT)) {
                night();
            } <span class="hljs-keyword">else</span> {
                Day();
            }
        }
    }

    <span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">night</span>() {
        WindowManager.LayoutParams params = <span class="hljs-keyword">new</span> WindowManager.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT,
                WindowManager.LayoutParams.TYPE_APPLICATION,
                WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                        | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSLUCENT);<span class="hljs-comment">// 设置的五个参数</span>

        params.gravity = Gravity.BOTTOM;
        params.y = <span class="hljs-number">10</span>;
        <span class="hljs-keyword">if</span> (myView == <span class="hljs-keyword">null</span>) {
            myView = <span class="hljs-keyword">new</span> TextView(<span class="hljs-keyword">this</span>);
            myView.setBackgroundColor(<span class="hljs-number">0x80000000</span>);
        }
        mWindowManager.addView(myView, params);
        Editor edit = skinSp.edit();
        edit.putString(<span class="hljs-string">"skin"</span>, NIGHT);
        edit.commit();
    }

    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">Day</span>() {
        <span class="hljs-keyword">if</span> (myView != <span class="hljs-keyword">null</span>) {
            mWindowManager.removeView(myView);
            Editor edit = skinSp.edit();
            edit.putString(<span class="hljs-string">"skin"</span>, DAY);
            edit.commit();
        }
    }

    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">removeSkin</span>() {
        <span class="hljs-keyword">if</span> (myView != <span class="hljs-keyword">null</span>) {
            mWindowManager.removeView(myView);
        }
    }

    <span class="hljs-annotation">@Override</span>
    <span class="hljs-keyword">protected</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onDestroy</span>() {
        <span class="hljs-keyword">super</span>.onDestroy();
        String mode = skinSp.getString(<span class="hljs-string">"skin"</span>, <span class="hljs-string">""</span>);
        <span class="hljs-keyword">if</span> (mode.equals(NIGHT)) {
            removeSkin();
        }
    }
}</code></span>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值