现在要来实现一个自定义的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”,指定主题为自定义的主题。现在就可以运行一下项目,看看自定义的效果。