Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android Styles & Themes

Android Styles & Themes

編輯:Android開發實例

 什麼是Style,什麼是Theme?       Style:是一個包含一種或者多種格式化屬性的集合,我們可以將其用為一個單位用在布局XML單個元素當中。比如,我們可以定義一種風格來定義文本的字號大小和顏色,然後將其用在View元素的一個特定的實例。       Theme:是一個包含一種或者多種格式化屬性的集合,我們可以將其為一個單位用在應用中所有的Activity當中或者應用中的某個Activity當 中。比如,我們可以定義一個Theme,它為window frame和panel 的前景和背景定義了一組顏色,並為菜單定義可文字的大小和顏色屬性,可以將這個Theme應用在你程序當中所有的Activity裡。   定義Styles和Themes資源的XML文檔的結構       對每一個Styles和Themes,給<style>元素增加一個全局唯一的名字,也可以選擇增加一個父類屬性。在後邊我們可以用這個名字來應用風格,而父類屬性標識了當前風格是繼承於哪個風格。在<style>元素內部,申明一個或者多個<item>,每一個<item>定義了一個名字屬性,並且在元素內部定義了這個風格的值。  
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <resources>   
  3.     <!-- 定義style -->   
  4.     <style name="myTextStyle" mce_bogus="1">        <item name="android:textSize">20px</item>   
  5.         <item name="android:textColor">#EC9237</item>   
  6.     </style>   
  7.     <style name="myTextStyle2" mce_bogus="1">       <item name="android:textSize">14px</item>   
  8.         <item name="android:textColor">#FF7F7C</item>   
  9.     </style>   
  10.  
  11.     <!-- 定義theme -->   
  12.     <style name="myTheme" mce_bogus="1">        <item name="android:windowNoTitle">true</item>   
  13.         <item name="android:textSize">14px</item>   
  14.         <item name="android:textColor">#FFFF7F7C</item>   
  15.     </style>   
  16.  
  17. </resources>   
 從上面的例子可以看出,定義上style與定義theme基本相同,只是使用的地方不同,還有就是在一些標簽的使用上: style 作用於view,theme作用於application或者Activity。   一個使用的例子:  
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:id="@+id/linear"   
  4.     android:orientation="vertical"   
  5.     android:layout_width="fill_parent"   
  6.     android:layout_height="fill_parent"   
  7.     >   
  8. <TextView   
  9.     style="@style/myTextStyle"     
  10.     android:layout_width="fill_parent"    
  11.     android:layout_height="wrap_content"    
  12.     android:gravity="center_vertical|center_horizontal"   
  13.     android:text="@string/hello"   
  14.     />   
  15.        
  16. <TextView   
  17.     style="@style/myTextStyle2"     
  18.     android:layout_width="fill_parent"    
  19.     android:layout_height="wrap_content"    
  20.     android:gravity="center_vertical|center_horizontal"   
  21.     android:text="www.google.cn"   
  22.     android:autoLink="all"   
  23.     />   
  24. </LinearLayout>  
本例中既使用了style也使用了theme,這就會造成沖突,在處理沖突時我個人實驗後得出的結論是 style的優先級要高於theme。   需要注意的一個標簽就是android:autoLink 定義它之後具有他的view會顯示為藍色帶下劃線的文本 ,並且當單擊這個超鏈接的時候會調用系統的浏覽器,啟動網頁,同時android的不支持html的格式。  
  1. @Override 
  2. public void onCreate(Bundle savedInstanceState) { 
  3.     super.onCreate(savedInstanceState); 
  4.     setTheme(R.style.myTheme); 
  5.     setContentView(R.layout.main);        
在代碼中使用theme:  setTheme()函數就調用了自定義的theme   在AndroidManifest.xml中應用Theme:         為了在當前所有的Activity當中使用Theme,可以打開AndroidManifest.xml 文件,編輯<application>標簽,讓其包含android:theme屬性,值是一個主題的名字,例如:<application android:theme=”@style/NewTheme”>。           如果只是想讓程序當中的某個Activity擁有這個Theme,那麼可以修改<activity>標簽。Android中提供了幾種內置的資源,有好幾種Theme你可以切換而不用自己寫。比如可以用對話框Theme來讓你的Activity看起來像一個對話框。在manifest中定義,例如:<activity android:theme=”@android:style/Theme.Dialog”> 如果喜歡一個Theme,但是想做一些輕微的改變,只需要將這個Theme添加為parent。Android SDK為我們提供了很多現成的Theme,比如:我們修改Theme.Dialog Theme,繼承Theme.Dialog來生成一個新的Theme。<style parent=”@android:style/Theme.Dialog”   繼承了Theme.Dialog後,我們可以按照我們的要求來調整Theme。我們可以修改在Theme.Dialog中定義的每個item元素的值,然後我們 在Android Manifest 文件中使用NewDialogTheme而不是 Theme.Dialog。   style 與 theme在用法上的區別    (note that in this case  style is not prefixed with the  android: namespace; it is a custom local style and not one provided by the platform).   Styles can be taken one step further and used as themes. While a style refers to a  set of attributes applied to a single View element, themes refer to a set of attributes  being applied to an entire screen. Themes can be defined in exactly the same <style> and <item> structure as styles are. To apply a theme you simply associate a style with  an entire Activity, such as: android:theme="@android:style/[stylename]".   轉自http://blog.csdn.net/zhqingyun163/archive/2009/11/06/4774979.aspx
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved