元素里邊申明,也是以同樣的方式引用。不同的是通過(guò)在AndroidManifest中定義的元素將主題添加到整個(gè)程序或者某個(gè)Activity,但是主題是不能應(yīng)用在某一個(gè)單獨(dú)的View里。定義Theme的一個(gè)例子

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android Styles & Themes(下)——Theme

系統(tǒng) 1922 0

上一篇幅 Android Styles & Themes(一)——Style 介 紹了Style神奇的魅力,下面繼續(xù)體驗(yàn)Theme的效果。就像Style一樣,Theme依然在<style>元素里邊申明,也是以同樣的 方式引用。不同的是通過(guò)在Android Manifest中定義的<application>和<activity>元素將主題添加到整個(gè)程序或者某個(gè) Activity,但是主題是不能應(yīng)用在某一個(gè)單獨(dú)的View里。

定義Theme的一個(gè)例子

<?xml version=”1.0″ encoding=”UTF-8″?>
<resources>
<style name=”NewTheme” parent=”android:Theme.Black”>
<item name=”android:windowNoTitle”>true</item>
<item name=”android:textSize”>14sp</item>
<item name=”android:textColor”>#FFFF0000</item>
</style>
</resources>

以上資源的定義,相信大家一看就明白,在這里需要強(qiáng)調(diào)的是:有些資源定義中使用了@符號(hào)和?符號(hào)來(lái)引用資源。,對(duì)這2個(gè)符號(hào)的作用解釋如下:

  • @ 表明我們應(yīng)用的資源是前邊定義過(guò)的(或者在前一個(gè)項(xiàng)目中或者在Android 框架中)。
  • ?表明我們引用的資源的值在當(dāng)前的主題當(dāng)中定義過(guò)。

這些技巧只能用在XML資源當(dāng)中

在程序中使用Theme的方法

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.NewTheme);
setContentView(R.layout.main);
}
這里需要注意的是,對(duì)于theme資源的引用,資源ID不是文件名(theme.xml),而是資源名(NewTheme)。運(yùn)行后的界面顯示如下:

在AndroidManifest.xml中應(yīng)用Theme

  • 為了在當(dāng)前所有的Activity當(dāng)中使用Theme,可以打開AndroidManifest.xml 文件,編輯<application>標(biāo)簽,讓其包含android:theme屬性,值是一個(gè)主題的名字,例 如:<application android:theme=”@style/NewTheme”>。
  • 如果只是想讓程序當(dāng)中的某個(gè)Activity擁有這個(gè)Theme,那么可以修改<activity>標(biāo)簽。Android中提供了 幾種內(nèi)置的資源,有好幾種Theme你可以切換而不用自己寫。比如可以用對(duì)話框Theme來(lái)讓你的Activity看起來(lái)像一個(gè)對(duì)話框。在 manifest中定義,例如:<activity android:theme=”@android:style/Theme.Dialog”>
  • 如果喜歡一個(gè)Theme,但是想做一些輕微的改變,只需要將這個(gè)Theme添加為parent。Android SDK為我們提供了很多現(xiàn)成的Theme,部分列舉如下:

    比如:我們修改Theme.Dialog Theme,繼承Theme.Dialog來(lái)生成一個(gè)新的Theme。<style parent=”@android:style/Theme.Dialog”>
    繼承了Theme.Dialog后,我們可以按照我們的要求來(lái)調(diào)整Theme。我們可以修改在Theme.Dialog中定義的每個(gè)item元素的值,然 后我們 在Android Manifest 文件中使用NewDialogTheme而不是 Theme.Dialog。

總結(jié)說(shuō)明

以上的例子比較簡(jiǎn)單,在使用中也發(fā)現(xiàn)不少問(wèn)題,例如Android SDK中定義的一個(gè)theme.xml如下:
<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
<style name=”CustomTheme”>
<item name=”android:windowNoTitle”>true</item>
<item name=”windowFrame”>@drawable/screen_frame</item>
<item name=”windowBackground”>@drawable/screen_background_white</item>
<item name=”panelForegroundColor”>#FF000000</item>
<item name=”panelBackgroundColor”>#FFFFFFFF</item>
<item name=”panelTextColor”>?panelForegroundColor</item>
<item name=”panelTextSize”>14</item>
<item name=”menuItemTextColor”>?panelTextColor</item>
<item name=”menuItemTextSize”>?panelTextSize</item>
</style>
</resources>

這個(gè)例子看上去,就發(fā)現(xiàn)幾個(gè)不太符合規(guī)范的地方:

  1. item name屬性有些沒(méi)有前綴Android,這似乎不符合Android SDK中定義的規(guī)范,規(guī)范詳解請(qǐng)閱讀 AndroidManifest.xml文件結(jié)構(gòu)說(shuō)明
  2. <item name=”panelTextSize”>14</item>,值缺少單位,應(yīng)該是14sp;

將這個(gè)theme引用到程序中,發(fā)現(xiàn)如下錯(cuò)誤:Error:no resource found that matches the given name: panelForegroundColor,這個(gè)錯(cuò)誤讓人莫名其妙。Android SDK中提供的例子程序,以前也發(fā)現(xiàn)了一些小問(wèn)題,比如說(shuō):XML文件中少了符號(hào)“。由于對(duì)Theme文檔的定義、到底有哪些屬性,Google沒(méi)有提供 文檔說(shuō)明,這個(gè)錯(cuò)誤不知道如何修改。在網(wǎng)上google了下,很多人都發(fā)現(xiàn)了這個(gè)問(wèn)題,目前還沒(méi)有人給出具體的解決辦法,我們會(huì)繼續(xù)深入的研究 Theme,有同樣問(wèn)題的可以在后續(xù)篇幅中關(guān)注這個(gè)問(wèn)題的解決方法。

Android Styles & Themes(下)——Theme


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 黑人和黑人激情一级毛片 | 九九在线免费观看视频 | 婷婷爱爱| 国产99re在线观看只有精品 | 免费国产一级特黄aa大片在线 | 青青青青青国产费线在线观看 | 日本老年人精品久久中文字幕 | 四虎影院网站 | 久久亚洲国产精品 | 成人免费视频视频在线观看 免费 | 亚洲欧美日韩高清一区二区一 | 欧美一级毛片免费高清aa | 日韩欧美中文字幕在线观看 | 久久www免费人成精品香蕉 | 免费欧美一级 | 日韩欧美天堂 | 国产一区三区二区中文在线 | 天天拍夜夜添久久精品免费 | 一级一毛片a级毛片欧美 | 尤物视频在线免费观看 | 色菇凉天天综合网 | 亚洲国产高清一区二区三区 | 高清波多野结衣一区二区三区 | 日韩专区亚洲精品欧美专区 | 亚洲天天做日日摸天天做 | 亚洲国产精品久久精品成人 | 日日操天天操夜夜操 | 久久国产网 | 国产成人在线免费视频 | 国产亚洲欧美成人久久片 | 视频一区免费 | 亚洲精品爱爱久久 | www.国产福利视频.com | 亚洲国产一区二区三区精品 | 欧美91在线 | 免费观看一级毛片 | 午夜精品久久久久久久 | 中日韩一区二区三区 | 三级黄毛片 | 一级毛片在线 | 久色国产 |