Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 主題和樣式-style和Theme的區別和使用

android 主題和樣式-style和Theme的區別和使用

編輯:關於Android編程

項目中經常使用style和Theme,但卻從來沒有考慮過它們的區別,只會copy來copy去的,有時候還有些迷茫,為了徹底告別迷茫,現把這兩者的區別和使用總結出來,供自己和大伙參考

一.作用域

Theme是針對窗體級別的,改變窗體樣式。

Style是針對窗體元素級別的,改變指定控件或者Layout的樣式

二.使用方式

Theme

1. 在res\values\ 下創建themes.xml或者styles.xml文件

2. 添加節點(根節點)

3. 添加自定義的style

4.(1)在AndroidManifest.xml文件中,為Activity指定theme屬性(推薦)

(2)Activity創建時調用setTheme函數 (必須在setContentView前調用 )


 

5.系統自帶的Theme

android:theme="@android:style/Theme.Dialog"   //將一個Activity顯示為能話框模式
android:theme="@android:style/Theme.NoTitleBar"  //不顯示應用程序標題欄
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  //不顯示應用程序標題欄,並全屏
android:theme="@Theme.Light"  //背景為白色
android:theme="Theme.Light.NoTitleBar"  //白色背景並無標題欄 
android:theme="Theme.Light.NoTitleBar.Fullscreen"  //白色背景,無標題欄,全屏
android:theme="Theme.Black"  //背景黑色
android:theme="Theme.Black.NoTitleBar"  //黑色背景並無標題欄
android:theme="Theme.Black.NoTitleBar.Fullscreen"    //黑色背景,無標題欄,全屏
android:theme="Theme.Wallpaper"  //用系統桌面為應用程序背景
android:theme="Theme.Wallpaper.NoTitleBar"  //用系統桌面為應用程序背景,且無標題欄
android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen"  //用系統桌面為應用程序背景,無標題欄,全屏

6.常用屬性

@android:drawable/screen_background_dark  
@null  
false  
false  
false  
@android:drawable/title_bar_shadow  
@android:style/WindowTitle  
25dip  
@android:style/WindowTitleBackground  
@android:style/Animation.Activity  

style

1. 在res\values\ 下創建styles.xml文件

2. 添加節點(根節點)

3. 添加自定義的style

4.在特定控件或layout中添加style屬性

   
  


示例:

很多程序剛啟動的時候的Tips界面,氣泡窗口和毛玻璃效果
\

<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+tPrC68jnz8KjujwvcD4KPHA+Qmx1clRoZW1lQWN0aXZpdHkuamF2YTxicj4KPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">import android.app.Activity; import android.os.Bundle; import android.view.WindowManager; public class BlurThemeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Have the system blur any windows behind this one. getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND); } }
themes.xml

 

AndroidManifest.xml

 


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