如何设计带有圆角和透明关闭按钮的自定义警报对话框?
问问题
14034 次
5 回答
28
像这样创建你的对话框
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context, R.style.CustomAlertDialog);
AlertDialog alertDialog = alertDialogBuilder.create();
在你的styles.xml
<style name="CustomAlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:windowBackground">@drawable/popup_background</item>
</style>
popup_background.xml写下你想要的任何角落半径
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<corners android:radius="6dp" />
</shape>
您可以更改拐角半径。祝你好运!
于 2017-01-18T12:55:13.240 回答
14
您可以将Material 组件用于 android 库和androidx.appcompat.app.AlertDialog
.
只需使用类似的东西:
new MaterialAlertDialogBuilder(context)
.setTitle("Dialog")
.setMessage("Lorem ipsum dolor ....")
.setPositiveButton("Ok", /* listener = */ null)
.setNegativeButton("Cancel", /* listener = */ null)
.show();
使用材质组件主题,您可以使用样式中的属性自定义组件的形状。shapeAppearanceOverlay
就像是:
<!-- Alert Dialog -->
<style name="MyThemeOverlayAlertDialog" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog">
<item name="shapeAppearanceOverlay">@style/ShapeAppearanceOverlay.MyApp.Dialog.Rounded</item>
</style>
在这里您可以定义圆角:
<style name="ShapeAppearanceOverlay.MyApp.Dialog.Rounded" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">8dp</item>
</style>
于 2019-08-24T21:08:03.493 回答
0
试试这个,它对我
很有用
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
于 2019-01-25T18:28:27.043 回答
0
您可以通过扩展警报对话框类来创建自定义视图。
但我建议您在执行特定操作时使用动画显示PopupWindow或子视图。
https://developer.android.com/reference/android/widget/PopupWindow.html
或者您可以通过将此属性添加到Manifest.xml来制作具有透明背景的活动
android:theme="@android:style/Theme.Translucent"
于 2017-01-18T12:53:43.063 回答
-2
试试看...
final Dialog dialog = new Dialog(context);
// Include dialog.xml file
dialog.setContentView(R.layout.your_custom_layout);
// Set dialog title
//dialog.setTitle("Custom Dialog");
// set values for custom dialog components - text, image and button
final EditText name = (EditText) dialog.findViewById(R.id.name_edit);
dialog.show();
/
Button editButton = (Button) dialog.findViewById(R.id.editbtn);
// if decline button is clicked, close the custom dialog
editButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Close dialog
dialog.dismiss();
}
});
final Button cancenbtn = (Button) dialog.findViewById(R.id.cancelbtn);
// if decline button is clicked, close the custom dialog
cancelnbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Close dialog
dialog.dismiss();
}
});
于 2017-01-18T12:51:49.650 回答