Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發 -- UI界面之threme和style

Android開發 -- UI界面之threme和style

編輯:關於Android編程

Android系統的themes.xml和style.xml(位於\base\core\res\res\values\)包含了很多系統定義好的style,建議在裡面挑個合適的,然後再繼承修改。

一、threme android中的主題一般用於窗體級別的,用於改變窗體樣式

1、Theme:

它的意思為默認狀態,即如果theme這裡不填任何屬性的時候,默認為Theme

1.1、Theme_NoDisplay

它的意思為任何都不顯示。比較適用於只是運行了activity,但未顯示任何東西。

1.2、Theme_NoTitleBar

意思為:背景主題的沒有標題欄的樣式,默認如果沒有設置的話,顯示黑背景

1.3、Theme_NoTitleBar_Fullscreen

意思為:背景主題的沒有標題欄且全屏的樣式,默認為黑背景

2、Theme_Black:

它的意思為默認狀態下黑背景。

2.1、Theme_Black_NoTitleBar:

意思為:黑背景主題的沒有標題欄的樣式

2.2、Theme_Black_NoTitleBar_Fullscreen

意思為:黑背景主題的沒有標題欄且全屏的樣式

3、Theme_Light

意思為:默認狀態下亮背景,與上述黑背景Theme_Black相反。

3.1、Theme_Light_NoTitleBar

意思為:亮背景主題的沒有標題欄的樣式,與Theme_Black_NoTitleBar相反

3.2、Theme_Light_NoTitleBar_Fullscreen

意思為:亮背景主題的沒有標題欄且全屏顯示的樣式,與Theme_Black_NoTitleBa_Fullscreenr相反

4、Theme_Dialog

意思為:對話框樣式 將整個activity變成對話框樣式出現。

5、Theme_InputMethod

6、Theme_Panel

意思為:刪除掉所有多余的窗口裝飾,在一個空的矩形框中填充內容,作用范圍相當於把dialog中的所有元素全部去掉,只是一個空的矩形框,且此為默認的樣式。

6.1、Theme_Light_Panel

意思為:刪除掉所有多余的窗口裝飾,在一個空的矩形框中填充內容,作用范圍相當於把dialog中的所有元素全部去掉,只是一個空的矩形框,且默認是light的樣式。

7、Theme_Wallpaper

意思為:使用牆紙做主題,默認狀態。

7.1、Theme_WallpaperSettings

意思為:使用牆紙做主題,默認是使用將上一個界面調暗之後作為主題

7.2、Theme_Light_WallpaperSettings

意思為:使用牆紙做主題,默認Light狀態。

7.3、Theme_Wallpaper_NoTitleBar

意思為:使用牆紙做主題,且沒有標題欄

7.4、Theme_Wallpaper_NoTitleBar_Fullscreen

意思為:使用牆紙做主題,且沒有標題欄,且全屏顯示

8、Theme_Translucent

意思為:半透明狀態下的背景,將運行此activity之前的屏幕作為半透明狀態作為此activity運行時的樣式。

8.1、Theme_Translucent_NoTitleBar

意思為:半透明狀態下沒有標題欄的背景,將運行此activity之前的屏幕作為半透明狀態作為此activity運行時的樣式。

8.2、Theme_Translucent_NoTitleBar_Fullscreen

意思為:半透明狀態下沒有標題欄且全屏的背景,將運行此activity之前的屏幕作為半透明狀態作為此activity運行時的樣式。

二、style android中的樣式一般是用於窗體元素界別的,用於改變控件的樣式

理解為將寫在控件屬性裡面的屬性,用一個文件給包裝起來了!!

樣式文件規范:

復制代碼 代碼如下:<?xml version="1.0" encoding="utf-8"?> 
<resources> 
  <style name="TextStyle"> 
     <item name="android:textSize">14sp</item> 
     <item name="android:textColor">#fff</item> 
  </style> 
</resources>

就是一個xml,以<resources>開頭,定義style節點,在style下定義item每一項。

引用也非常簡單,如下:

復制代碼 代碼如下:<EditText id="@+id/editText1" 
     
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello, World!" />

以上只是style的一些簡單的應用 ,下在將會講到一個非常實用的知識,也就是style的繼承關系。這樣才能更好的簡化我們代碼的工作量,也更利用整個程序邏輯的組建。它的繼承關系可以有兩種實現的方式:

1. 是通過 parent屬性來指定
2. 通過點號來指定

接下來我們分別來舉例:我們程序中應用到最多的可能就是TextView了,它可能會有很多種情況 ,比如 作為title,正文,提示等等,而這一些的TextView有他的共同點,也有他們的不同之處。首先我們定義一個通過的style:

復制代碼 代碼如下:<style name="TextStyle">
    <item name="android:shadowDx">-0.5</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">0.5</item>
    <item name="android:singleLine">true</item>
    <item name="android:ellipsize">marquee</item>
</style>

以上主要是定義了他的陰影啊,單行啊,超過長度怎麼辦啊。接下來我們再定義一個title級別的樣式,title我們也想要這些屬性,那麼就得繼承它了。首先我們用 parent屬性來繼承

復制代碼 代碼如下:<style name="TextTitle" parent="TextStyle">
    <item name="android:textSize">18sp</item>
    <item name="android:textColor">#fff</item>
    <item name="android:textStyle">bold</item>
</style>

parent屬性中跟的就是父類的名稱,就樣title的陰影 ,字體大小 ,辨色,粗細就一起出來了,而我們不用再去定義title的陰影了。節省了不少的時間。第二種繼承是利用parentStyle.childStyle的方式 ,用點號來繼承 ,上面的TextTitle我們也可以這樣寫:

復制代碼 代碼如下:<style name="TextStyle.TextTitle">
    <item name="android:textSize">18sp</item>
    <item name="android:textColor">#fff</item>
    <item name="android:textStyle">bold</item>
</style>

這樣也能得到預期的效果。這樣做不爽的地方 就是名字就長了,我們在引用這個style的時候,就得 ,如果繼承的層級越多,這個名字就會越長。

以上就是Android開發UI界面之threme和style的全部內容,希望能給大家一個參考,也希望大家多多支持本站。

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