Android中用到Dialog的情景非常的多,如提示、警告、选择等等;正因为情景多种多样,所以Android提供的dialog不一定适合我们特定的情况,或外观与应用不匹配,所以时常要进行Dialog自定义。。
一、自定义Dialog主题样式
主题样式是决定了Dialog整体的样式,如是否有标题,是否悬浮,是否透明等;在res/values.xml文件里面添加自定义样式
<style name="AdInfoDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item> <!--Dialog的windowFrame框为无-->
<item name="android:windowIsFloating">true</item> <!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">false</item> <!--是否半透明-->
<item name="android:windowNoTitle">true</item> <!--是否有title-->
<item name="android:backgroundDimEnabled">false</item> <!-- 背景是否模糊显示-->
<item name="android:windowBackground">@drawable/dialog_bg_shape</item> <!--设置dialog的背景-->
</style>
二、自定义Dialog形状
上面最后一行为引用Dialog的shape定义:
<item name="android:windowBackground">@drawable/dialog_bg_shape</item>
Android使用shape自定义形状,如Dialog是否有边框,填充什么颜色,是否圆角等;在res/drawable文件夹下面自定义一个文件dialog_bg_shape.xml,里面为shape内容:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#FFFFFF" />
<corners android:radius="5dp" />
</shape>
三、Dialog的布局
在res/layout文件夹下面添加dialog的布局文件dialog_info_ad.xml,如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical" &g