如何显示一个没有消息文本的进度对话框(我只需要不确定的圆圈)?

6

如何显示一个没有消息的进度对话框?

我只需要显示不确定的圆圈。在不创建自定义对话框的情况下,最简单和最快的方法是什么?是否有类似于这样的方法:

progressDialog.setShowIndeterminateCircleOnly(true)


进度条应该能够满足您的需求! - Ratan
3
好的,如果客户不想这样做,我也无能为力。 - Arci
3个回答

11

希望这能对一些人有所帮助,因为答案仍然不容易找到。

ProgressDialog progDialog = ProgressDialog.show( getContext(), null, null, false, true );
progDialog.getWindow().setBackgroundDrawable( new ColorDrawable( Color.TRANSPARENT ) );
progDialog.setContentView( R.layout.progress_bar );

第二行将删除进度圆圈图标周围的框,但默认情况下它将保持左对齐。您将需要在XML布局文件中添加第三行来处理重力和任何其他样式。

progress_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<ProgressBar
    xmlns:android="http://schemas.android.com/apk/res/android"
    style="?android:attr/progressBarStyleLarge"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" />

如果你喜欢默认的小圆点图标,那么你无需在上方定义样式。


3
如果您只需要一个旋转轮而不带盒子,可以像这样使用。
<ProgressBar
       style="?android:attr/progressBarStyle"
       android:layout_gravity="center_horizontal"
       android:id="@+id/progressbar_downloading"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" 
/>

为您的对话框设置XML文件的引用,例如... progressDialog.setContentView( R.layout.progress_bar ); 但是这种解决方案仍然会显示覆盖父宽度的框。 - EMalik
为什么这个回答被接受为正确答案?当问题仅涉及使用进度对话框显示进度圆圈(而不是进度条)时。 - Abhishek

-1
只需在您的XML文件中添加进度条。
    <ProgressBar 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

或者创建没有设置标题的ProgressDialog

ProgressDialog dialog = ProgressDialog.show(ActivityName.this, "", "", true);
        dialog.setCancelable(true);

如果我这样做,圆形右侧会有一个额外的空间。盒子仍然是一个矩形。我希望盒子只覆盖圆形。 - Arci
你需要为你的对话框创建一个自定义视图。SDK开发指南中有示例。 - Philippe Girolami
谢谢,看来我别无选择,只能创建一个自定义对话框了。 - Arci
如果您只想在进度对话框中显示移动圆圈,则唯一的方法是从XML文件创建自定义对话框,并通过布局填充器在Java类中进行膨胀。您还可以在ProgressDialog中设置一个动画GIF图像。谢谢。 - Arun Kumar
@android_dev:我尝试创建一个只有圆形的自定义对话框,但是对话框的宽度没有改变。我该如何使宽度更小? - Arci

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接