第一种:
private void showDialog() {
final Dialog dialog = new Dialog(getActivity(),R.style.dialog);
// 设置它的ContentView
dialog.setContentView(R.layout.fragment_delete_user_dialog);
LinearLayout buttonOK = (LinearLayout) dialog.findViewById(R.id.confirm_bt_id);
LinearLayout buttonCancel = (LinearLayout) dialog.findViewById(R.id.cancel_bt_id);
buttonOK.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent mIntent=new Intent();
mIntent.setAction("com.yunbell.unbind");
getActivity().sendBroadcast(mIntent);
dialog.dismiss();
}
});
buttonCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
设置style:
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:backgroundDimAmount">0.6</item>
</style>
设置背景为圆角图片,Button分割线不能画到图片,应该自己在布局文件里面写。
背景图片:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid
android:color="#0d8c93"
/>
<stroke
android:width="1dp"
android:color="#0d8c93"
/>
<corners
android:topLeftRadius="8dp"
android:topRightRadius="8dp"
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
/>
</shape>
下方的按钮图片:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="false">
<shape android:shape="rectangle">
<corners android:bottomLeftRadius="8dp"/>
<solid android:color="#0d8c93"/>
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:bottomLeftRadius="8dp"/>
<solid android:color="#5fccdd"/>
</shape>
</item>
</selector>
第二种用DialogFragment:
和第一种的区别就是:在fragment里面设置dialog背景透明。getDialog().getWindow().setBackgroundDrawableResource(android.R.color.transparent);
两种方法注意是:分割线要自己在布局文件里面写,不能在图片上面画!!!
在shape图片的四周画边框的例子代码:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape>
<solid android:color="#000000" />
</shape>
</item>
<item
android:bottom="1.5dp"
android:drawable="@drawable/white_other_bg"
android:left="0dp"
android:right="1.5dp"
android:top="1.5dp">
</item>
</layer-list>