Android 自定义dialog,制作圆角,背景直角问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zuo_er_lyf/article/details/82424898

问题:在自定义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>

猜你喜欢

转载自blog.csdn.net/zuo_er_lyf/article/details/82424898