1. 程式人生 > >android設定主題和自定義主題的方法

android設定主題和自定義主題的方法

嘿嘿,書接上回,android有兩種設定主題到方法,一種就是通過修改manifest檔案,一種就是在通過修改我們的java程式碼;主題的自定義設定和樣式的自定義設定類似。

首先我們先來自定兩個主題檔案。 在res/values/style.xml新增如下程式碼:

複製程式碼
  <style name="MyTheme1" parent="@android:style/Theme.Dialog">
 </style>
 <style name="MyTheme2" 
 parent="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen">
 </style>
<!-- 
說明:
 上建立了兩個主題樣式,第一個是對話方塊的主題,第二個是桌布的主題。僅為例子使用,沒有
更改。想要更改某些屬性可以參照:android sdk目錄\data\res\values 目錄下的themes.xml
檔案中的主題樣式進行更改
 -->
複製程式碼

然後我們通過修改mainfest檔案的方式來設定主題,打到mainfest.xml檔案,對<application>標籤加入程式碼:android:theme="@style/MyTheme1",這樣就是對整個應用的主題進行設定,如果只修改某個activity的主題,這句程式碼也可以加在相應的<activity>標籤中。

在java程式碼裡我們實現一下主題的設定,主要程式碼如下:

複製程式碼
//讀取主題 如果讀取失敗,則設定為系統預設的主題        theme = getSharedPreferences("cons", MODE_PRIVATE).getInt("theme", 
                android.R.style.Theme);
        //
設定主題 setTheme(theme); //呼叫父類方法,一定要放到設定主題之後 super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.btn1); //通過點選,切換主題。點選後要重起應用能看到效果 btn.setOnClickListener( new OnClickListener(){ @Override public
void onClick(View v) { if( R.style.MyTheme1 != theme ){ //將主題儲存到sharedPreference中,以便下次啟動設定主題時讀取 sf.getSharedPreferences("cons",Activity.MODE_PRIVATE).edit() .putInt("theme", R.style.MyTheme1).commit(); } else { sf.getSharedPreferences("cons",Activity.MODE_PRIVATE).edit() .putInt("theme", R.style.MyTheme2).commit(); } //退出應用 android.os.Process.killProcess(android.os.Process.myPid()); } });
複製程式碼


程式截圖: