<!-- 自定义dialog 继承父类 android:style/Theme.Dialog-->
<style name="DialogCustomTest" parent="android:style/Theme.Dialog">
<!-- 边框 -->
<item name="android:windowFrame">@null</item >
<!-- 没有标题 -->
<item name="android:windowNoTitle">true</item>
<!-- 背景透明 -->
<item name="android:windowIsTranslucent">false</item>
<!-- 对话框的内容窗口背景色:让整个对话框的背景为透明-->
<item name="android:windowBackground">@color/all_transparent</item>
<!-- 整个屏幕背景是透明的 -->
<!--    <item name="android:background">@android:color/transparent</item> -->
<!-- 整个屏幕背景的灰度值:默认是黑色的 :遮障层的灰度-->
<!-- <item name="android:backgroundDimAmount">0.5</item> -->
<!-- dialog的整个屏幕的背景是否有遮障层  当设置这个最后时,上边两行不起作用-->
<item name="android:backgroundDimEnabled">false</item>
<!-- 重要,Dialog进出的显示动画 -->
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
<!-- 是否有覆盖 -->
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="dialog"  parent="@android:style/Theme.Dialog" >
<item name="android:windowFrame"> @null </item><!-- 边框 -->
<item name="android:windowIsFloating"> true </item><!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">true</item><!-- 半透明 -->
<item name="android:windowNoTitle">true</item><!-- 无标题 -->
<item name="android:windowBackground">@drawable/bg</item><!-- 对话框的背景-->
<item name="android:backgroundDimEnabled">false</item><!-- 模糊 -->
</style>
<style name="transparent" parent="android:Theme">
<item name="android:windowBackground">@drawable/bg</item><!-- 此对话框的背景 -->
<item name="android:windowIsTranslucent">true</item><!-- 对话框是否透明 -->
<item name="android:windowContentOverlay">@null</item><!-- 对话框是否有遮盖 -->
<item name="android:windowNoTitle">true</item><!-- 对话框无标题 -->
<item name="android:windowIsFloating">true</item><!-- 对话框是否浮动 -->
<item name="android:backgroundDimEnabled">false</item>
</style>

样式:转自: http://www.cnblogs.com/0616--ataozhijia/archive/2012/12/12/2815224.html

以上是自定义Dialgog可以使用自定义样式:

关于<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> 重要,Dialog进出的显示动画要特别注意 ,可以自定义Dialog进出的动画,但是item的名字必须和下面的一样,以确定Android系统能够认识出来。

<style name= "Animation.Translucent"
  1. WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
  2. lp.alpha= 1 .0f;
  3. dialog.getWindow().setAttributes(lp);

alpha在0.0f到1.0f之间。1.0完全不透明,0.0f完全透明,自身不可见。
设置幕布,也就是本dialog的背景层。
  1. dialog.setContentView(R.layout.dialog);
  2. WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
  3. lp.dimAmount= 1 .0f;
  4. dialog.getWindow().setAttributes(lp);
  5. dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

dimAmount在0.0f和1.0f之间,0.0f完全不暗,即背景是可见的 ,1.0f时候,背景全部变黑暗。

如果要达到背景全部变暗的效果,需要设置  dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
,否则,背景无效果。

此方法可以用来设置浮动层。呵呵!

public void createDialog(Context context){
Dialog dialog  = new Dialog(context,R.style.transparent);
View view = LayoutInflater.from(context).inflate(R.layout.dialog_test_item, null);
dialog.setContentView(view);
WindowManager.LayoutParams a = dialog.getWindow().getAttributes();
a.gravity = Gravity.TOP;//设置对话框显示的位置
a.dimAmount = 0.0f; // 去背景遮盖:即背景不会遮盖activity的内容
a.alpha = 0.7f;//window 透明度
dialog.getWindow().setAttributes(a);
dialog.show();
dialog.setOnCancelListener(null);//关闭对话框
}

样式:转自:http://www.cnblogs.com/0616--ataozhijia/archive/2012/12/12/2815224.html                    true                true                @color/weibosdk_transparent android :name=".Two Activity " android :theme="@ style /Theme.AppCompat. Dialog "> </ activity > 创建 dialog (需要重写) onPrepare Dialog : 在创建 dialog 后的其他准备工作(需要重写) show Dialog : 显示 dialog (直接调用) dismiss Dialog : 取消dial
一、 Activity Dialog 概述 在使用 Dialog 时,如果需要用到很多自己设计的控件,虽然可以让弹出框显示出我们需要的界面,但却无法找到地方完成控制代码的编写,如何解决这个问题呢,我们可以将 Activity 伪装成 Dialog 弹出框,这样既显示了界面,又可以在 Activity 里写控制代码。这就是 Dialog Activity 。 默认情况下,一个 Activity 占据整个屏幕。然而,可以为一个 Activity 设置一个“ 对话框 ”主题,这样它就能像一个浮动的 对话框 显示出来了。举个例子,你可能想要把
android :id="@+id/delete_button" android :layout_width="wrap_content" android :layout_height="wrap_content" android :text="Delete" 2. 在您的 Activity 或 Fragment 中找到该按钮并为其设置一个点击事件监听器,例如: Button deleteButton = findViewById(R.id.delete_button); deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 弹出删除 对话框 showDelete Dialog (); 3. 编写一个方法 `showDelete Dialog ()` 来显示删除 对话框 ,例如: private void showDelete Dialog () { Alert Dialog .Builder builder = new Alert Dialog .Builder(this); builder.setTitle("Delete Item") .setMessage("Are you sure you want to delete this item?") .setPositiveButton("Delete", new Dialog Interface.OnClickListener() { @Override public void onClick( Dialog Interface dialog , int which) { // 在这里执行删除操作 .setNegativeButton("Cancel", null) .show(); 4. 在 对话框 的确认按钮的点击事件中添加您需要执行的删除操作。 这样,当用户点击删除按钮后,将会弹出一个删除 对话框 ,询问用户是否确认删除,如果确认删除,则执行您编写的删除操作。如果用户选择取消,则 对话框 会关闭而不执行任何操作。