问题:在自定义dialog弹窗时,为了美观设计带圆角背景,但是圆角边框的同时会出现白色直角部分,如果设置的是白色底,会出现一种设置圆角无效的假象。
图:
图一,要达到的效果,图二,突出白色直角部分,图三,设置圆角无效的现象。
代码:
public class ExChangeCouponDialog extends Dialog implements View.OnClickListener {
private Handler handler;
public ExChangeCouponDialog(Context context, Handler handler) {
super(context);
View view = View.inflate(context, R.layout.exchange_coupon_dialog_layout, null);
this.setContentView(view);
this.setCanceledOnTouchOutside(false);// 设置点击屏幕Dialog不消失
// Window window=this.getWindow();
// window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
this.handler = handler;
TextView tv_exchange = (TextView) view.findViewById(R.id.tv_exchange);
TextView tv_back = (TextView) view.findViewById(R.id.tv_back);
tv_exchange.setOnClickListener(this);
tv_back.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_exchange:
handler.sendEmptyMessage(200);
break;
case R.id.tv_back:
handler.sendEmptyMessage(201);
break;
}
}
}
注释的两行代码,就是将弹窗的背景设置为透明色(#00000000),解决直角问题。
设置圆角 的xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<corners android:radius="20dp"></corners>
</shape>