Android ApiDemo示例解讀4::Activity->Custom Dialog
在Android Demo實例App->Activity->Custom Dialog中,使用Activity來實現自定義對話框,類CustomDialogActivity本身無任何特別之處。關鍵的一點是其在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 風格(Theme)。
Android應用可以使用自定義的界面風格(Theme),Theme 為一組相關的Style定義,可以應用于某個Activity或是整個Application。使用Theme的一個好處是可以為整個應用定義統一的界面 風格(統一的背景色,字體等)。
定義Theme 和定義Style一樣, 必須定義在/res/values子目錄下,根元素名為resources,Theme 和Style的區別在于,Theme應用于Activity和Application, 而Style應用于單個的View。 其定義方法是一致的。Style 定義支持 Inheritance,也就是在定義新風格時可以基于系統定義的風格或是之前定義的風格:
如Theme.CustomDialog 定義就是基于Android的Dialog風格(parent)而只修改的WindowsBackground屬性,使用了褐色背景。
- <style name=”Theme.CustomDialog” parent=”android:style/Theme.Dialog”>
- <item name=”android:windowBackground”>@drawable/filled_box</item>
- </style>