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