安卓應用換膚

安卓應用換膚


package com.example.changeskin;



import android.app.Activity;
import android.os.Bundle;
import android.view.View;


public class MainActivity extends Activity {




    private int mThemeId = -1; // 皮膚主題ID,默認-1 不處理


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState != null) {
            if (savedInstanceState.getInt("theme", -1) != -1) {// 讀取皮膚主題ID,-1 不處理
                mThemeId = savedInstanceState.getInt("theme");
                this.setTheme(mThemeId);  //設置主題皮膚
            }
        }
        setContentView(R.layout.activity_main);


        this.findViewById(R.id.changeSkin1).setOnClickListener(mOnClickListener);   // day 明亮主題
        this.findViewById(R.id.changeSkin2).setOnClickListener(mOnClickListener);  //night 黑暗主題


    }




    View.OnClickListener mOnClickListener = new View.OnClickListener() {


        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
                case R.id.changeSkin1:
                    onTheme(R.style.theme1);
                    break;
                case R.id.changeSkin2:
                    onTheme(R.style.theme2);
                    break;
                default:


            }
        }
    };




    // 設置主題,並重建
    private void onTheme(int iThemeId){
        mThemeId = iThemeId;
        this.recreate();
    }
    // 保存主題ID,onCreate 時讀取主題
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt("theme", mThemeId);
    }
}
發佈了40 篇原創文章 · 獲贊 17 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章