首先自定义一个类,继承自dialog类。
设置
@Override
public void onStart() {
super.onStart();
Window window = getDialog().getWindow();
if (window == null) {
return;
}
WindowManager.LayoutParams layoutParams = window.getAttributes();
//重新设置宽度
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
layoutParams.width = (int) (window.getWindowManager().getDefaultDisplay().getWidth() * 0.75);
layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
layoutParams.dimAmount = 0.5f;
window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
window.setAttributes(layoutParams);
}
alpha在0.0f到1.0f之间。1.0完全不透明,0.0f完全透明,自身不可见。
dimAmount在0.0f和1.0f之间,0.0f完全不暗,即背景是可见的 ,1.0f时候,背景全部变黑暗。
要达到背景的效果,需要设置
window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
否则,背景无效果。