国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > Android 切换应用风格,夜间模式

Android 切换应用风格,夜间模式

来源:程序员人生   发布时间:2015-03-25 11:41:57 阅读次数:2516次

加入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

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生