Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android應用Theme(一)

android應用Theme(一)

編輯:關於Android編程

android切換Theme主流三種方式來切換Theme,第一種是通過內置的style來切換,一般用於夜間模式/日間模式切換。第二種是通過apk來實現插件化,第三種是通過下載zip進行解壓到到相應的app文件下,應用講需要文件讀取到內存中。這篇是介紹第一種android切換Theme的方法。

首先當然是在values下面創建attrs文件,然後定義了一些attr。



  
      
      
       
      
      
  
然後再在styles文件定義兩個style。


    
      
然後就是在布局文件中使用attrs。



   

最後就是在mainActivity設置theme並動態切換theme。

import android.os.Bundle;
import android.preference.PreferenceManager;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
	
	private Button mSwtichThemeBtn;
	private boolean isNight;
	private SharedPreferences sp;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		sp = PreferenceManager.getDefaultSharedPreferences(this);
		setTheme((isNight = sp.getBoolean("isNight", false)) ? R.style.nightTheme : R.style.dayTheme);
		setContentView(R.layout.activity_main);
		mSwtichThemeBtn = (Button) this.findViewById(R.id.swtichThemeBtn);
		mSwtichThemeBtn.setText(isNight?"切換日間模式":"切換夜間模式");
		mSwtichThemeBtn.setOnClickListener(new View.OnClickListener() {

			
			@Override
			public void onClick(View v) {
				Editor edit = sp.edit();
				edit.putBoolean("isNight", !isNight);
				edit.commit();
				recreateForTheme();
			}
		});
	}
	@SuppressLint("NewApi")
	public void recreateForTheme(){
		
		if(android.os.Build.VERSION.SDK_INT >= 11){
			this.recreate();
		}else{
			this.finish();
			startActivity(new Intent(MainActivity.this,MainActivity.class));
		}
	}


\




  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved