Android ApiDemo示例解讀4::Activity->Custom Dialog
在Android Demo實(shí)例App->Activity->Custom Dialog中,使用Activity來(lái)實(shí)現(xiàn)自定義對(duì)話框,類(lèi)CustomDialogActivity本身無(wú)任何特別之處。關(guān)鍵的一點(diǎn)是其在AndroidManifest.xml中的定義:
- <activity android:name=”.app.CustomDialogActivity”
- android:label=”@string/activity_custom_dialog”
- android:theme=”@style/Theme.CustomDialog“>
- <intent-filter>
- <action android:name=”android.intent.action.MAIN” />
- <category android:name=”android.intent.category.SAMPLE_CODE” />
- </intent-filter>
- </activity>
CustomDialogActivity使用了CustomDialog 風(fēng)格(Theme)。
Android應(yīng)用可以使用自定義的界面風(fēng)格(Theme),Theme 為一組相關(guān)的Style定義,可以應(yīng)用于某個(gè)Activity或是整個(gè)Application。使用Theme的一個(gè)好處是可以為整個(gè)應(yīng)用定義統(tǒng)一的界面 風(fēng)格(統(tǒng)一的背景色,字體等)。
定義Theme 和定義Style一樣, 必須定義在/res/values子目錄下,根元素名為resources,Theme 和Style的區(qū)別在于,Theme應(yīng)用于Activity和Application, 而Style應(yīng)用于單個(gè)的View。 其定義方法是一致的。Style 定義支持 Inheritance,也就是在定義新風(fēng)格時(shí)可以基于系統(tǒng)定義的風(fēng)格或是之前定義的風(fēng)格:
如Theme.CustomDialog 定義就是基于Android的Dialog風(fēng)格(parent)而只修改的WindowsBackground屬性,使用了褐色背景。
- <style name=”Theme.CustomDialog” parent=”android:style/Theme.Dialog”>
- <item name=”android:windowBackground”>@drawable/filled_box</item>
- </style>