如何显示水平Android不确定进度条

时间:2011-06-23 04:29:48

标签: android android-progressbar

如何在android中显示不确定的水平进度条?进度条的动画应从0到100开始,然后从100连续返回0。我不是在寻找车轮进度条。

5 个答案:

答案 0 :(得分:42)

我已经知道setIndeterminate会给出一个无限的水平进度条。但它将类似于装载轮,除了它将是水平的。如果你看到我的问题,我正在寻找从0开始的水平条,一直到100(逐渐增加)。如果您想在Android中实现此功能,则必须使用以下进度条:

 <ProgressBar
    android:id="@+id/progress_horizontal"
    android:indeterminateOnly="false"
    android:indeterminateDrawable="@drawable/progress_indeterminate_horizontal"
    android:progressDrawable="@drawable/progress_horizontal"
    android:minHeight="24dip"
    android:maxHeight="24dip" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>

由于我想更改进度条的背景,我更改了ProgressDrawable和IndeterminateDrawable。原始drawable位于frameworks/base/core/res/res/drawable下方。将它们复制到您的项目中,并根据您的需要更改颜色。

创建一个更新进度计数并执行Thread.Sleep的线程。然后它将消息发送给处理程序,它将更新UI线程中的进度条。

答案 1 :(得分:11)

使用ProgressBar的方法setIndeterminate:

android.widget.ProgressBar bar = new android.widget.ProgressBar(context);
bar.setIndeterminate(true);

但是,你可以在开发者文档中很快找到它。

http://developer.android.com/reference/android/widget/ProgressBar.html#setIndeterminate%28boolean%29

答案 2 :(得分:8)

要扩展Vinoth答案,这是一个现成的代码:

<ProgressBar
        android:id="@+id/progressBarLoadingRecite"
        android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
        android:minHeight="24dip"
        android:layout_marginTop="20dip"
        android:indeterminate="true"
        android:maxHeight="24dip"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

答案 3 :(得分:2)

在定义进度条的xml中,您可以添加

style="@android:style/Widget.ProgressBar.Horizontal"

答案 4 :(得分:2)

也许有点晚,但是您可以执行以下操作:

<ProgressBar
    android:id="@+id/progress"
    android:layout_width="match_parent"
    android:layout_height="10dp"
    android:indeterminate="true"
    style="?android:attr/progressBarStyleHorizontal" />

希望它对某人有帮助!