Android自定义对话框去掉白色边框

自定义对话框去掉白色边框,方法如下:

1. 首先定义下面的style样式

styles.xml

 <style name="dialog" parent="android:Animation">  
        <item name="@android:windowEnterAnimation">@anim/dialog_enter</item>
        <item name="@android:windowExitAnimation">@anim/dialog_exit</item>
  </style>
  <style name="dialog_no_border" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item><!-- 边框 -->  
        <item name="android:windowIsFloating">true</item><!-- 是否浮现在activity之上 -->  
        <item name="android:windowIsTranslucent">false</item><!-- 半透明 -->
        <item name="android:windowNoTitle">true</item>  <!-- 无标题 -->
        <item name="android:windowBackground">@drawable/dialog_login_bg</item><!-- 背景图片 --> 
        <item name="android:backgroundDimEnabled">true</item>  <!-- 模糊 -->
        <!-- 对话框弹出后,父窗体是否为全黑,需要跟backgroundDimEnabled配合使用 -->
        <item name="android:backgroundDimAmount">0.6</item>
  </style>

2. 用法

Dialog mDialog = new Dialog(mContext, R.style.dialog_no_border);
Window mWindow = mDialog.getWindow();
mWindow.setGravity(Gravity.CENTER);  //设置dilog显示的位置
mWindow.setWindowAnimations(R.style.dialog);  //添加动画

mDialog.setContentView(view); //设置自己的布局文件
mDialog.show();
附上对话框从屏幕下方飞入和飞出的动画

dialog_enter.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="600"
        android:fromYDelta="100%p" />

</set>
dialog_exit.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="600"
        android:toYDelta="100%p" />

</set>

translate 位置转移动画效果  
整型值:  
      fromXDelta   属性为动画起始时X坐标上的位置  
      toXDelta    属性为动画结束时X坐标上的位置  
      fromYDelta   属性为动画起始时Y坐标上的位置  
      toYDelta    属性为动画结束时Y坐标上的位置  
      注意:      没有指定,默认是以自己为相对参照物  

长整型值:  
      duration    属性为动画持续时间  
      说明:      时间以毫秒为单位  
在这些属性里面还可以加上%和%p,例如:
android:toXDelta="100%",表示自身的100%,也就是从View自己的位置开始。
android:toXDelta="80%p",表示父层View的80%,是以它父层View为参照的。



你可能感兴趣的:(自定义对话框,白色边框)