带圆角和透明背景的自定义警报对话框

时间:2017-01-18 12:46:36

标签: android android-custom-view alertdialog

如何使用圆角和透明关闭按钮设计自定义警告对话框?

5 个答案:

答案 0 :(得分:14)

像这样创建对话

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>

这对于角球半径祝你好运

答案 1 :(得分:4)

您可以使用Material components for android libraryandroidx.appcompat.app.AlertDialog

只需使用以下内容:

new MaterialAlertDialogBuilder(context)
            .setTitle("Dialog")
            .setMessage("Lorem ipsum dolor ....")
            .setPositiveButton("Ok", /* listener = */ null)
            .setNegativeButton("Cancel", /* listener = */ null)
            .show();

使用Material Components Theme,您可以{@ 3}}使用具有您样式中的 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>

customize the shape

答案 2 :(得分:0)

您可以通过扩展警告对话框类来创建自定义视图。

但我建议使用 PopupWindow 或在执行特定操作时使用动画显示的子视图。

https://developer.android.com/reference/android/widget/PopupWindow.html

或者您可以通过将此属性添加到 Manifest.xml

来制作透明背景的活动
  android:theme="@android:style/Theme.Translucent"

答案 3 :(得分:0)

尝试一下,它就像魅力一样对我有用
我正在使用最低sdk版本19的sdkversion 28

        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

答案 4 :(得分:-2)

尝试一下......

 user_id  date        value    v_minus7 v_minus14
 27       2016-01-01  15.0     15.0      15.0
 27       2016-01-03  22.4     37.4      37.4
 27       2016-01-05  13.3     50.7      50.7
 27       2016-01-07  21.9     72.6      72.6
 27       2016-01-10  20.6     78.2      93.2
 27       2016-01-14  18.6     61.1     111.8
 27       2016-01-16  16.4     55.6     113.2
 11       2016-01-01   6.8      6.8       6.8
 11       2016-01-03  21.3     28.1      28.1
 11       2016-01-05  19.8     47.9      47.9
 11       2016-01-07  22.0     69.9      69.9
 11       2016-01-10  19.4     82.5      89.3
 11       2016-01-14  17.5     58.9     106.8
 11       2016-01-16  19.3     56.2     119.3