Android 的Style和theme

1.Style和Theme

Android的style分為兩個(gè)方面:

1.Theme 是針對窗體級別的堪遂,改變窗體樣式

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

Android 系統(tǒng)的themes.xml和style.xml(位于系統(tǒng)源代碼frameworks\base\core\res\res\values\)包含很多系統(tǒng)定義好的style。Style和Theme都是資源喝噪。

1)Style是包含一種或者多種格式化屬性的集合汰现,可以將其作為一個(gè)單位用在布局XML單個(gè)元素中。例如:定義風(fēng)格(定義文字的字號和顏色)君账,然后用在view元素中繁堡。

2)Themeye是包含一種或者多種格式化屬性的集合,可以將其作為一個(gè)單位用所有的Activity或某個(gè)Activity中乡数。例如:定義主題(為Window Frame和Panel的前景和背景定義了一組顏色并為菜單定義了文字的大小和顏色)椭蹄,然后用在Activity中。

2.自定義Style和Theme

自定義Style步驟:

1.在res/values目錄下新建style.xml

2.增加一個(gè)<resource>根節(jié)點(diǎn)净赴,對每一種Style定義name绳矩,也可以增加parent屬性

3.<style>元素內(nèi)部可以有多個(gè)item

例如:

<resource>

<style name="SpecialText" parent="@style/Text">

<item name="android:textSize">20sp</item>

<item name="android:textColor">#0000000<item>

</style>

</resource>

在某個(gè)View中只需 style="@style/SpecialText"即可引用該Style。

自定義Theme 的步驟和自定義Style類似玖翅,不同的是Theme應(yīng)用在Android Manifest中定義的

和元素將主題添加到整個(gè)程序或者某個(gè) Activity翼馆,但是主題是不能應(yīng)用在某一個(gè)單獨(dú)的View里。

<resource>

<style name="CustomTheme">

<item name="android:windowNoTitle">true</item>

<item name="windowFrame">@drawable/screen_frame</item>

<item ame="panelForegroundColor">#FF000000</item>

<item "panelTextColor">?panelForegroundColor</item>

</style>

</resource>

注意我們用了@符號和金度?符號來應(yīng)用資源应媚。@符號表明了我們應(yīng)用的資源是前邊定義過的(或者在前一個(gè)項(xiàng)目中或者在Android 框架中)。問號猜极?表明了我們引用的資源的值在當(dāng)前的主題當(dāng)中定義過中姜。通過引用在里邊定義的名字可以做到(panelTextColor用的顏色和panelForegroundColor中定義的一樣)。這中技巧只能用在XML資源當(dāng)中跟伏。

在manifest當(dāng)中設(shè)置主題

打開AndroidManifest.xml 文件丢胚,編輯標(biāo)簽翩瓜,讓其包含android:theme屬性,值是一個(gè)主題的名字嗜桌,如下:

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

在程序當(dāng)中設(shè)置主題

如果需要的話奥溺,你可 以在Activity當(dāng)中通過使用方法setTheme()來加載一個(gè)主題。注意骨宠,如果你這么做的話浮定,你應(yīng)該初始化任何View之前設(shè)置主題。比如层亿,在調(diào) 用setContentView(View) 和inflate(int, ViewGroup)方法前桦卒。這保證系統(tǒng)將當(dāng)前主題應(yīng)用在所有的UI界面。例子如下:

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

...

setTheme(android.R.style.Theme_Light);

setContentView(R.layout.linear_layout_3);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匿又,一起剝皮案震驚了整個(gè)濱河市方灾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碌更,老刑警劉巖裕偿,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痛单,居然都是意外死亡嘿棘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門旭绒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸟妙,“玉大人,你說我怎么就攤上這事挥吵≈馗福” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵忽匈,是天一觀的道長房午。 經(jīng)常有香客問我,道長丹允,這世上最難降的妖魔是什么歪沃? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮嫌松,結(jié)果婚禮上沪曙,老公的妹妹穿的比我還像新娘。我一直安慰自己萎羔,他們只是感情好液走,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般缘眶。 火紅的嫁衣襯著肌膚如雪嘱根。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天巷懈,我揣著相機(jī)與錄音该抒,去河邊找鬼。 笑死顶燕,一個(gè)胖子當(dāng)著我的面吹牛凑保,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涌攻,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼欧引,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了恳谎?” 一聲冷哼從身側(cè)響起芝此,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎因痛,沒想到半個(gè)月后婚苹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鸵膏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年膊升,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片较性。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡用僧,死狀恐怖结胀,靈堂內(nèi)的尸體忽然破棺而出赞咙,到底是詐尸還是另有隱情,我是刑警寧澤糟港,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布攀操,位于F島的核電站,受9級特大地震影響秸抚,放射性物質(zhì)發(fā)生泄漏速和。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一剥汤、第九天 我趴在偏房一處隱蔽的房頂上張望颠放。 院中可真熱鬧,春花似錦吭敢、人聲如沸碰凶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽欲低。三九已至辕宏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砾莱,已是汗流浹背瑞筐。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腊瑟,地道東北人聚假。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像扫步,于是被迫代替她去往敵國和親魔策。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容