基於android樣式與主題(styletheme)的詳解

來源:互聯網
上載者:User

android 中的樣式和 CSS 樣式作用相似,都是用於為介面元素定義顯示風格,它是一個包含一個或者多個view 控制項屬性的集合。如:需要定義字型的顏色和大小。
在 CSS 中是這樣定義的:
<style>
.itcast{COLOR:#0000CC;font-size:18px;}
</style>
可以像這樣使用上面的 css 樣式: <div class="itcast"> 傳智播客 </div>
在 Android 中可以這樣定義樣式:
在 res/values/styles.xml 檔案中添加以下內容 複製代碼 代碼如下:<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name=“itcast”> <!-- 為樣式定義一個全域唯一的名字 -->
<item name="android:textSize">18px</item> <!-- name 屬性為樣式要用在的 View 控制項持有的屬性 -->
<item name="android:textColor">#0000CC</item>
</style>
</resources>

在 layout 檔案中可以像下面這樣使用上面的 android 樣式:複製代碼 代碼如下:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ....>
<TextView style="@style/itcast"
..... />
</LinearLayout>

<style> 元素中有一個 parent 屬性。這個屬性可以讓當前樣式繼承一個父樣式,當前樣式可以繼承到父樣式的值。當然,如果父樣式的值不符合你的需求,你也可以對它進行修改,如下:複製代碼 代碼如下:<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="itcast">
<item name="android:textSize">18px</item> <!-- name 屬性為樣式要用在的 View 控制項持有的屬性 -->
<item name="android:textColor">#0000CC</item>
</style>
<style name="subitcast" parent="@style/itcast">
<item name="android:textColor">#FF0000</item>
</style>
</resources>

android 中主題也是用於為應用定義顯示風格,它的定義和樣式的定義相同,如下:複製代碼 代碼如下:<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name=“itcastTheme">
<item name=“android:windowNoTitle”>true</item> <!– 沒標題 à
<item name=“android:windowFullscreen”>?android:windowNoTitle</item> <!– 全螢幕顯示 à
</style>
</resources>

上面“ ?android:windowNoTitle” 中的問號用於引用在當前主題中定義過的資源的值。下面代碼顯示在AndroidManifest.xml 中如何為應用設定上面定義的主題:複製代碼 代碼如下:<application android:icon="@drawable/icon" android:label="@string/app_name"
android:theme="@style/itcastTheme">
......
</application>

除了可以在 AndroidManifest.xml 中設定主題,同樣也可以在代碼中設定主題,如下:
setTheme(R.style.itcastTheme);
儘管在定義上,樣式和主題基本相同,但是它們使用的地方不同。樣式用在單獨的 View ,如: EditText 、TextView 等;主題通過 AndroidManifest.xml 中的 <application> 和 <activity> 用在整個應用或者某個 Activity,主題對整個應用或某個 Activity 進行全域性影響。如果一個應用使用了主題,同時應用下的 view 也使用了樣式,那麼當主題與樣式屬性發生衝突時,樣式的優先順序高於主題。

另外 android 系統也定義了一些主題,例如: <activity android:theme=“@android:style/Theme.Dialog”> ,該主題可以讓 Activity 看起來像一個對話方塊,如果需要查閱這些主題,可以在文檔的 reference à android-->R.style 中查看。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.