国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Android Styles & Themes(下)

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

定義Theme的一個例子

<?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>

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

  • @ 表明我們應用的資源是前邊定義過的(或者在前一個項目中或者在Android 框架中)。
  • ?表明我們引用的資源的值在當前的主題當中定義過。

這些技巧只能用在XML資源當中

在程序中使用Theme的方法

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

在AndroidManifest.xml中應用Theme

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

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

總結說明

以上的例子比較簡單,在使用中也發(fā)現(xiàn)不少問題,例如Android SDK中定義的一個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>

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

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

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

相關文章

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
自定義progressdialog
Android應用開發(fā)中的風格和主題(style,themes)
Android風格與主題
android 懸浮球的實現(xiàn)
dialog的全透明無邊框背景
Android全屏設置的兩種方式
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服