材料设计进度对话框与透明背景

时间:2015-05-07 00:52:29

标签: android progressdialog material-design android-progressbar

我想在我的应用中添加一个不确定的Progress Dialog材料。我找到了两种方法来实现它:

1-使用材料对话框:https://github.com/afollestad/material-dialogs

2-使用material-design-library的内置对话框:https://github.com/navasmdc/MaterialDesignLibrary#dialog

使用这些解决方案中的任何一种,我得到的东西都非常像this:一个带有进度条的对话框。

enter image description here

我想得到的只是圆形进度条,没有周围的浅灰色视图,没有任何文字。许多应用程序向我们证明了用户知道当一些东西在旋转时他只需要等待:没有必要用字母写出来。我的意思很像this,但很重要。

enter image description here

我不认为这是一个如此奇怪的问题(或者是它?)但我无法在网上找到任何好的答案。你们中有谁知道如何实现这个目标吗?

谢谢

[编辑]我必须说,在材料对话框库的gitHub问题中,这似乎已经讨论过,但开发人员快速关闭它,说它意味着不遵循指南:https://github.com/afollestad/material-dialogs/issues/277

2 个答案:

答案 0 :(得分:1)

总结我们与作者的努力相结合:

主要目标是使用对话框本身的透明背景为“材质进度轮”类型的进度指示器获取对话框外观效果(特别是背景调光)。

我们如何去做(可能的方式之一):

  1. This library用作物料进度轮。

  2. 创建包含进度轮布局progress_wheel.xml的单独布局文件(例如,<com.pnikosis.materialishprogress.ProgressWheel>...)。如果您发现自己的轮子尺寸没有按照布局设置进行更改,请使用FrameLayout尺寸wrap_content包裹它。

  3. 使用布局inflater对此布局进行充气以获取视图,例如dialogView

  4. 创建对话框:

  5. Dialog progressDialog = new Dialog(context);
    progressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    progressDialog.setContentView(dialogView);
    progressDialog.show();
    
    1. dialogView上调用此功能可使对话框背景透明:
    2. public static void clearParentsBackgrounds(View view) {
          while (view != null) {
              final ViewParent parent = view.getParent();
              if (parent instanceof View) {
                  view = (View) parent;
                  view.setBackgroundResource(android.graphics.Color.TRANSPARENT);
              } else {
                  view = null;
              }
          }
      }
      

答案 1 :(得分:1)

您可以使用此代码,在设备&gt; = 19(Kitkat)中正常工作

progress = ProgressDialog.show(Splash.this, null, null, true);
            progress.setContentView(R.layout.elemento_progress_splash);
            progress.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

            progress.show();

元素进度splash.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@null"
    >

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:backgroundTint="@color/ColorTipografiaAdeudos"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Comprobando sus datos"
        android:layout_below="@+id/progressBar1"
        android:layout_centerHorizontal="true"
        android:id="@+id/textView6"
        android:textSize="20dp"
        android:textStyle="bold"
        android:textColor="@color/ColorFuente"
        android:layout_gravity="center_horizontal" />


</RelativeLayout>

enter image description here