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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值