現在要來實現一個自訂的Dialog,主要涉及到樣式檔案style。參考案例,自己寫代碼來實現。首先建立一個Android Project——CustomDialog,然後res/drawable檔案夾下建立一個xml檔案filled_box.xml,其內容為:
<?xml version=”1.0″ encoding=”utf-8″?>
<shape xmlns:android=”http://schemas.android.com/apk/res/android”>
<solid android:color=”#ffff0000″/>
<stroke android:width=”3dp” color=”#00ffff80″/>
<corners android:radius=”2dp” />
<padding android:left=”10dp” android:top=”10dp”
android:right=”10dp” android:bottom=”10dp” />
</shape>
這個檔案主要是畫了一個圓角矩形(shape的android:shape屬性的預設值為rectangle,故這裡沒有設定為矩形,預設是矩形。),設定了其填充顏色為#ffff0000,就是solid這項了;圓角大小是2dp,就是corners這項了;padding項主要控制各邊得對齊資訊,stroke項主要是邊框效果。欲瞭解shape的詳細資料,請參與文檔裡Dev Guide–>Framework Topics–>Application Resources–>Resource Types–>Drawable頁面的相關內容。
下一步就是在res/values目錄下建立styles.xml樣式檔案,內容如下:
<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
<style name=”Theme.CustomDialog” parent=”android:style/Theme.Dialog”>
<item name=”android:windowBackground”>@drawable/filled_box</item>
</style>
</resources>
Theme.CustomDialog是自己定義的主題名字,parent屬性指定主題的父級主題為android:style/Theme.Dialog,這個主題在“Dialog提示視窗”的案例中已經使用過,然後通過name為android:windowBackground的item指定了視窗背景為之前通過filled_box定義的shape。
現在有了主題樣式定義,只需要為Activity添加使用的主題項就可以了,跟前一個案例“Dialog提示視窗”的處理方式一樣,開啟AndroidManifest.xml檔案,在Activity定義處加上屬性android:theme=”@style/Theme.CustomDialog”,指定主題為自訂的主題。現在就可以運行一下項目,看看自訂的效果。