Android 切換應用風格,夜間模式
來源:程序員人生 發布時間:2015-03-25 11:41:57 閱讀次數:2681次
加入SharedPreference標志,可以記憶上次選用的風格,從而下次啟動時沒必要重置。
package com.zms.nightstyle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Main extends Activity {
private boolean isNight = false;
private Button btnSet;
private Button btnGet;
private SharedPreferences sharedPreferences;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sharedPreferences = getSharedPreferences("UseStyle", Context.MODE_WORLD_READABLE);
isNight = sharedPreferences.getBoolean("isNight", false);
if (isNight) {
this.setTheme(R.style.MyThemeNight);
} else {
this.setTheme(R.style.MyThemeDefault);
}
setContentView(R.layout.main);
btnSet = (Button) findViewById(R.id.btnSet);
btnGet = (Button) findViewById(R.id.btnGet);
btnSet.setOnClickListener(new onClickListenerImp());
btnGet.setOnClickListener(new onClickListenerImp());
}
class onClickListenerImp implements View.OnClickListener {
@Override
public void onClick(View v) {
if (v == btnSet) {
Editor editor = sharedPreferences.edit();
if (isNight) {
setTheme(R.style.MyThemeDefault);
isNight = false;
} else {
setTheme(R.style.MyThemeNight);
isNight = true;
}
editor.putBoolean("isNight", isNight);
editor.commit();
setContentView(R.layout.main);
btnSet = (Button) findViewById(R.id.btnSet);
btnGet = (Button) findViewById(R.id.btnGet);
btnSet.setOnClickListener(new onClickListenerImp());
btnGet.setOnClickListener(new onClickListenerImp());
} else if (v == btnGet) {
Toast.makeText(Main.this, "isNight: " + isNight, Toast.LENGTH_SHORT).show();
}
}
}
}
兩種風格主題:
<?xml version="1.0" encoding="utf⑻"?>
<resources>
<!-- 默許主題 -->
<style name="MyThemeDefault" parent="@android:style/Theme">
<item name="btnColor">#00ff00</item>
<item name="mainBackground">#ffffff</item>
<item name="mainTextColor">#000000</item>
<item name="textString">默許主題</item>
</style>
<!-- 夜間主題 -->
<style name="MyThemeNight" parent="@android:style/Theme">
<item name="btnColor">#0000ff</item>
<item name="mainBackground">#000000</item>
<item name="mainTextColor">#ffffff</item>
<item name="textString">夜間主題</item>
</style>
</resources>
布局文件:
<?xml version="1.0" encoding="utf⑻"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="?mainBackground"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="?textString" />
<ImageView
android:id="@+id/ivBook"
android:layout_width="62dip"
android:layout_height="42dip"
android:layout_gravity="center"
android:layout_marginTop="0dip"
android:gravity="center"
android:src="?btnColor" />
<Button
android:id="@+id/btnSet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:text="改變主題" />
<Button
android:id="@+id/btnGet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:text="Get Flag" />
</LinearLayout>
轉載請注明出處:周木水的CSDN博客 http://blog.csdn.net/zhoumushui
我的GitHub:周木水的GitHub https://github.com/zhoumushui
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈