效果图:

代码:
public class ViewActivity extends Activity implements View.OnClickListener {
Dialog mDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view);
initDialog(this);
}
@Override
public void onClick(View v) {
mDialog.show();
}
public void initDialog(Context context) {
View view = LayoutInflater.from(context).inflate(R.layout.view_share, null);
mDialog = new Dialog(context, R.style.Translucent_Dialog);
mDialog.setContentView(view);
ImageView iv_cancel = (ImageView) view.findViewById(R.id.iv_cancel);
iv_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDialog.dismiss();
}
});
}
}
透明背景的样式:
<style name="Translucent_Dialog" parent="@android:style/Theme.Dialog">
<!
<item name="android:background">@android:color/transparent</item>
<!
<item name="android:windowBackground">@android:color/transparent</item>
<!
<item name="android:backgroundDimEnabled">false</item>
</style>
dialog布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_share"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="180dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="25dp"
android:layout_marginTop="15dp"
android:background="@drawable/view_dialog_bg"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pengkv"
android:textColor="#000"
android:textSize="20dp" />
</LinearLayout>
<ImageView
android:id="@+id/iv_cancel"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:src="@drawable/ic_cancel" />
</RelativeLayout>
更改backgroundDimEnabled可以去掉灰色背景,效果如图:

tip: