dialog实现遮罩层的做法
1. 第一点,需要在activity布局中添加一个LinearLayout 布局
例如
<LinearLayout
android:id="@+id/ll_dialog_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/dialog_bg"
android:visibility="gone">
</LinearLayout>
2.在调用dialog的时候显示上面这个布局
ll_dialog_background.setVisibility(View.VISIBLE);
3.退出时的隐藏布局
//点击dialog以外的地方隐藏布局
dialog.setOnCancelListener(new OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0) {
// TODO Auto-generated method stub
ll_dialog_background.setVisibility(View.GONE);
}
});
// 点击条目以后隐藏
dialog.dismiss();
ll_dialog_background.setVisibility(View.GONE);
//返回键隐藏
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
ll_dialog_background.setVisibility(View.GONE);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}