手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >android基础教程之夜间模式实现示例
android基础教程之夜间模式实现示例
摘要:复制代码代码如下:packageorg.david.dayandnightdemo.cor;importandroid.os.Bundle;...

复制代码 代码如下:

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>

【android基础教程之夜间模式实现示例】相关文章:

Android源码学习之组合模式定义及应用

android动态壁纸调用的简单实例

android GridView多选效果的实例代码

android中图片翻页效果简单的实现方法

android二级listview列表实现代码

Android 解析JSON对象及实例说明

android 开发教程之日历项目实践(二)

Android中获得手机屏幕大小实现代码

android 音乐播放器中播放模式的设计

android开发基础教程—SharedPreferences读写

精品推荐
分类导航