溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【移動開發(fā)】Android中Theme和Style的使用

發(fā)布時間:2020-06-25 10:54:51 來源:網(wǎng)絡(luò) 閱讀:11307 作者:zhf651555765 欄目:開發(fā)技術(shù)

   當我們做項目到一定程度的時候,Android提供給我們的簡單的UI控件(雖然后期ADT插件更新中增加了不少)已經(jīng)不能滿足我們的需要,一款成功的軟件不僅要功能強大,漂亮的界面同樣會吸引不少用戶!

   這里,我將總結(jié)一下Android提供給我們的兩個重要的資源:Theme 和 Style。


1.Theme(是針對窗體級別的,可以改變窗體樣式)

官方文檔  

       Themes are Android's mechanism for applying a consistent style to an app or activity. The style specifies the visual properties of the elements that make up your user interface, such as color, height, padding and font size. To promote greater cohesion between all apps on the platform, Android provides three system themes that you can choose from when building apps for Ice Cream Sandwich:

      主題是Android的機制被應(yīng)用一個相同風(fēng)格的應(yīng)用程序Activity中。樣式指定了視覺屬性的元素裝飾你的用戶界面,如顏色、高度、填充和字體大小。促進更大的凝聚力在所有平臺的應(yīng)用程序,Android提供了三個系統(tǒng)的主題,您可以選擇在構(gòu)建應(yīng)用程序選擇不同的主題:

   Holo Light
   Holo Dark
   Holo Light with dark action bars

官方圖:

【移動開發(fā)】Android中Theme和Style的使用【移動開發(fā)】Android中Theme和Style的使用【移動開發(fā)】Android中Theme和Style的使用

1.1.使用

   Android系統(tǒng)的themes.xml和style.xml(位于/base/core/res/res/values/)包含了很多系統(tǒng)定義好的style,建議在里面挑個合適的,然后再繼承修改。以下屬性是在Themes中比較常見的,源自Android系統(tǒng)本身的themes.xml:

<style
   name="simple_dialog" parent="@android:style/Theme.Dialog">
       <item name="android:windowFrame">@null</item><!-- Dialog的WindowFrame框為無 -->
       <item name="android:windowNoTitle">true</item>
       <item name="android:windowIsFloating">true</item><!-- 是否懸浮在activity上 -->
       <item name="android:windowIsTranslucent">true</item><!-- 是否半透明 -->
       <item name="android:backgroundDimEnabled">false</item><!-- 背景是否模糊 -->
   </style>

有人會問從哪里學(xué)習(xí)這些主題?其實系統(tǒng)就自帶了很多,看下圖:

【移動開發(fā)】Android中Theme和Style的使用

在AndroidManifest的Application中,點擊Theme選項,系統(tǒng)資源里就有相當多的主題供你選擇。

  A.應(yīng)用到Application

<application android:theme="@style/CustomTheme">

   B.應(yīng)用到Activity

<activity android:theme="@android:style/Theme.Dialog">


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

 官方文檔:

  A style is a collection of properties that specify the look and format for a View or window. A style can specify properties such as height, padding, font color, font size, background color, and much more. A style is defined in an XML resource that is separate from the XML that specifies the layout.

   風(fēng)格是一個集合的屬性用于指定具有一定外觀和格式的視圖或窗口。一個風(fēng)格可以指定屬性如高度、填充、字體顏色、字體大小、背景色等等。一個樣式定義在XML資源,獨立于XML指定布局。

Styles in Android share a similar philosophy to cascading stylesheets in web design—they allow you to separate the design from the content.

    風(fēng)格在安卓中的份額就如同級聯(lián)樣式表在web設(shè)計中的設(shè)計,允許你將內(nèi)容分割開來設(shè)計

   2.1簡單使用

   一個簡單地樣式

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#00FF00"
    android:typeface="monospace"
    android:text="@string/hello" />

    可以在任何相同的地方被引用

<TextView
    
    android:text="@string/hello" />

2.2定義風(fēng)格

   首先可以在res/values/下創(chuàng)建一個xml,用于定義style(注意:根結(jié)點必須是<resources>

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>

   這里我們可以看到,該style的名稱為CodeFont,parent后面是父類的style,(當然,我們也可以不用繼承父類style),接下來每一個item定義一個屬性。定義屬性的最好方法就是在api文檔里找到這個view的xml屬性,比如在EditText中有InputType這個屬性,那么在你的style里面你就可以來定義它。


   ok! 就是這些了!




向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI