android設置主題和自定義主題的方法 – 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());

            }

           

        });

 

 

 

 

程序截圖:

 



 工程源碼:點我

 

作者 bausch

發佈留言