现在要来实现一个自定义的Dialog,主要涉及到样式文件style。参考案例,自己写代码来实现。首先创建一个Android ProjectCustomDialog,然后res/drawable文件夹下创建一个xml文件filled_box.xml,其内容为:
<?xml version= 1.0encoding= utf-8 ?>
<shape xmlns:android= http://schemas.android.com/apk/res/android >
<solid android:color= #ffff0000 />
<stroke android:width= 3dpcolor= #00ffff80 />
<corners android:radius= 2dp/>
<padding android:left= 10dpandroid:top= 10dp
android:right= 10dpandroid: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.0encoding= utf-8 ?>
<resources>
<style name= Theme.CustomDialogparent= 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 ,指定主题为自定义的主题。现在就可以运行一下项目,看看自定义的 效果。