具有角半径的Android对话框背景具有分层背景

具有角半径的Android对话框背景具有分层背景,android,android-layout,Android,Android Layout,我不熟悉安卓系统,也不熟悉Java。在我的应用程序中,我弹出了一个警报对话框,其中显示了一个日期和时间选择器,供用户选择他们想要发送消息的日期时间。那部分进展顺利 在我的xml中,当我设置一个背景属性(当前为蓝色并且有一个角半径)时,似乎有一个额外的白色背景,后面没有一个角半径。我有点生气。感谢您的帮助 xml: 实际上,您看到的背景是AlertDialog的default theme,它是Light\u主题,没有办法使其透明,而不是使用警报对话框,只需使用对话框,您可以使其主题透明 示例: f

我不熟悉安卓系统,也不熟悉Java。在我的应用程序中,我弹出了一个警报对话框,其中显示了一个日期和时间选择器,供用户选择他们想要发送消息的日期时间。那部分进展顺利

在我的xml中,当我设置一个背景属性(当前为蓝色并且有一个角半径)时,似乎有一个额外的白色背景,后面没有一个角半径。我有点生气。感谢您的帮助

xml:


实际上,您看到的背景是
AlertDialog
default theme
,它是
Light\u主题
,没有办法使其透明,而不是使用警报对话框,只需使用对话框,您可以使其主题透明

示例:

final Dialog alertDialog = new Dialog(this);
    alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    alertDialog.setContentView(R.layout.date_time_picker);
    alertDialog.findViewById(R.id.date_time_set).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

             DatePicker datePicker = (DatePicker) alertDialog.findViewById(R.id.date_picker);
             TimePicker timePicker = (TimePicker) alertDialog.findViewById(R.id.time_picker);

             Calendar calendar = new GregorianCalendar(datePicker.getYear(),
                                datePicker.getMonth(),
                                datePicker.getDayOfMonth(),
                                timePicker.getCurrentHour(),
                                timePicker.getCurrentMinute());

             long time = calendar.getTimeInMillis();

        }});
    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    alertDialog.show();
结果:

final Dialog alertDialog = new Dialog(this);
    alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    alertDialog.setContentView(R.layout.date_time_picker);
    alertDialog.findViewById(R.id.date_time_set).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

             DatePicker datePicker = (DatePicker) alertDialog.findViewById(R.id.date_picker);
             TimePicker timePicker = (TimePicker) alertDialog.findViewById(R.id.time_picker);

             Calendar calendar = new GregorianCalendar(datePicker.getYear(),
                                datePicker.getMonth(),
                                datePicker.getDayOfMonth(),
                                timePicker.getCurrentHour(),
                                timePicker.getCurrentMinute());

             long time = calendar.getTimeInMillis();

        }});
    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    alertDialog.show();

实际上,您看到的背景是
警报对话框的
默认主题
,即
灯光主题
,没有办法使其透明,而不是使用警报对话框,只要使用对话框,您可以使其主题透明

示例:

final Dialog alertDialog = new Dialog(this);
    alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    alertDialog.setContentView(R.layout.date_time_picker);
    alertDialog.findViewById(R.id.date_time_set).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

             DatePicker datePicker = (DatePicker) alertDialog.findViewById(R.id.date_picker);
             TimePicker timePicker = (TimePicker) alertDialog.findViewById(R.id.time_picker);

             Calendar calendar = new GregorianCalendar(datePicker.getYear(),
                                datePicker.getMonth(),
                                datePicker.getDayOfMonth(),
                                timePicker.getCurrentHour(),
                                timePicker.getCurrentMinute());

             long time = calendar.getTimeInMillis();

        }});
    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    alertDialog.show();
结果:

final Dialog alertDialog = new Dialog(this);
    alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    alertDialog.setContentView(R.layout.date_time_picker);
    alertDialog.findViewById(R.id.date_time_set).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

             DatePicker datePicker = (DatePicker) alertDialog.findViewById(R.id.date_picker);
             TimePicker timePicker = (TimePicker) alertDialog.findViewById(R.id.time_picker);

             Calendar calendar = new GregorianCalendar(datePicker.getYear(),
                                datePicker.getMonth(),
                                datePicker.getDayOfMonth(),
                                timePicker.getCurrentHour(),
                                timePicker.getCurrentMinute());

             long time = calendar.getTimeInMillis();

        }});
    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    alertDialog.show();

发布你的@drawable/corners\u qkI已经发布了,谢谢。发布你的@drawable/corners\u qkI已经发布了,谢谢。我知道了。非常感谢,罗德!我继续前进,我明白了。非常感谢,罗德!我继续前进。
final Dialog alertDialog = new Dialog(this);
    alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    alertDialog.setContentView(R.layout.date_time_picker);
    alertDialog.findViewById(R.id.date_time_set).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

             DatePicker datePicker = (DatePicker) alertDialog.findViewById(R.id.date_picker);
             TimePicker timePicker = (TimePicker) alertDialog.findViewById(R.id.time_picker);

             Calendar calendar = new GregorianCalendar(datePicker.getYear(),
                                datePicker.getMonth(),
                                datePicker.getDayOfMonth(),
                                timePicker.getCurrentHour(),
                                timePicker.getCurrentMinute());

             long time = calendar.getTimeInMillis();

        }});
    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    alertDialog.show();