Android中圆角对话框的实现(总结)

效果图如下:

Android中圆角对话框的实现(总结)_第1张图片

Android中圆角对话框的实现(总结)_第2张图片

其中最重要的一点就是:要将对话框的背景设置为透明的,其他的圆角之类的可以通过Shape等修改。

1、需要把对话框的默认背景改为透明。

方法:自定义Dialog的样式。


#00000000

如何使用:

final Dialog dialog = new Dialog(mContext, R.style.Translucent_NoTitle);

2、布局文件XML

2.1 layout_cornerdialog.xml




    

    

    

    

        

2.2、layout_cornerdialog_withclose.xml




    

        

        

        

        

            

2.3、btn_corner_leftbottom.xml,其他相关的样式文件类似



    
    
    

3、如何在Activity中引用

/**
 * 显示圆角对话框
 */
private void showCornerDialog() {
    final Dialog dialog = new Dialog(mContext, R.style.Translucent_NoTitle);
    View view = LayoutInflater.from(mContext).inflate(R.layout.layout_cornerdialog, null);
    Button btnCancel = view.findViewById(R.id.Layout_CornerDialog_btnCancel);
    Button btnBesure = view.findViewById(R.id.Layout_CornerDialog_btnBesure);
    btnCancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();
            dialog.dismiss();
        }
    });
    btnBesure.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();
            dialog.dismiss();
        }
    });
    dialog.setContentView(view);
    dialog.show();
}

/**
 * 显示圆角对话框(带有悬浮关闭按钮)
 */
private void showCornerDialogWithClose() {
    final Dialog dialog = new Dialog(mContext, R.style.Translucent_NoTitle);
    View view = LayoutInflater.from(mContext).inflate(R.layout.layout_cornerdialog_withclose, null);
    Button btnCancel = view.findViewById(R.id.Layout_CornerDialog_btnCancel);
    Button btnBesure = view.findViewById(R.id.Layout_CornerDialog_btnBesure);
    ImageView ivClose = view.findViewById(R.id.Layout_CornerDialog_ivCancel);
    ivClose.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog.dismiss();
        }
    });
    btnCancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();
            dialog.dismiss();
        }
    });
    btnBesure.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();
            dialog.dismiss();
        }
    });
    dialog.setContentView(view);
    dialog.show();
}

 

你可能感兴趣的:(Android开发)