广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    android基础教程之夜间模式实现示例

    2018-04-09 07:40:41 次阅读 稿源:互联网
    广告

    代码如下:

    package org.david.dayandnightdemo.cor;

    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    import android.graphics.Color;
    import android.graphics.PixelFormat;
    import android.view.Gravity;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.WindowManager;
    import android.view.WindowManager.LayoutParams;
    import android.widget.Button;
    import android.widget.TextView;

    public class MainActivity extends Activity implements OnClickListener {

        private WindowManager mWindowManager;
        private View myView;
        private Button btn_dayAndnight;
        private SharedPreferences skinSp;
        private final static String DAY = "day";
        private final static String NIGHT = "night";
        private int flage = 0;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
            setContentView(R.layout.activity_main);
            init();
        }

        private void init() {
            skinSp = this.getSharedPreferences("skinchange", Context.MODE_PRIVATE);
            btn_dayAndnight = (Button) findViewById(R.id.btn_dayAndnight);
            btn_dayAndnight.setOnClickListener(this);

            String mode = skinSp.getString("skin", "");
            if(mode!=null||!mode.equals("")){
                if(mode.equals(NIGHT)){
                    night();
                }else{
                    day();
                }
            }

        }

        @Override
        public void onClick(View v) {
            if(flage%2==0){
                night();
                btn_dayAndnight.setText("白天模式");
                btn_dayAndnight.setTextColor(Color.WHITE);
                flage++;
            }else{
                day();
                btn_dayAndnight.setText("夜间模式");
                btn_dayAndnight.setTextColor(Color.BLACK);
                flage++;
            }
        }

        public void night() {
            WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                    LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT,
                    LayoutParams.TYPE_APPLICATION,
                    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                            | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                    PixelFormat.TRANSLUCENT);
            params.gravity=Gravity.BOTTOM;
            params.y=10;
            if(myView==null){
                myView=new TextView(this);
                myView.setBackgroundColor(0x80000000);
            }
            mWindowManager.addView(myView, params);
            Editor edit = skinSp.edit();
            edit.putString("skin", NIGHT);
            edit.commit();
        }

        public void day(){
            if(myView!=null){
                mWindowManager.removeView(myView);
                Editor edit = skinSp.edit();
                edit.putString("skin", DAY);
                edit.commit();
            }
        }

       
        public void removeSkin(){
            if(myView!=null){
                mWindowManager.removeView(myView);
            }
        }

        @Override
        protected void onDestroy() {
            super.onDestroy();
            String mode = skinSp.getString("skin", "");
            if(mode.equals(NIGHT)){
                removeSkin();           
            }
        }

    }

    布局文件
    代码如下:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >

        <Button
            android:id="@+id/btn_dayAndnight"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/btn_changeskin" />

    </RelativeLayout>

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告