【问题标题】:android circle progressbarandroid圆形进度条
【发布时间】:2012-08-14 09:31:30
【问题描述】:

我需要制作一个圆形进度条,仅在接收数据时旋转。我在布局中写道:

        <ProgressBar
            android:id="@+id/progress_bar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminateOnly="true"
            style="?android:attr/progressBarStyleSmall"
            />

然后收到部分数据,我做

mProgressBar.incrementProgressBy(10);

我认为最初 mProgressBar 应该停止,但它一直在旋转,即使连接没有建立!

我应该怎么做才能使 ProgressBar 在收到另一部分数据时最初停止并旋转?

【问题讨论】:

  • 使用处理程序或异步任务下载数据并在下载完成后显示进度条,然后向处理程序发送消息以停止(不可见或消失)进度条。

标签: android progress-bar


【解决方案1】:

没有办法停止不确定的进度条。要么你必须创建自己的自定义进度条,要么你可以用不确定的drawable做一些小技巧。

您可以在进度条上放置一个图像视图并在其中设置相同的可绘制对象。

当您想停止动画时,隐藏进度条并显示图像视图。

当你想开始动画时,隐藏图像视图并显示进度条。

它应该给你同样的效果。

【讨论】:

    【解决方案2】:

    使用visiblegone 来提高布局的可见性。

    【讨论】:

      【解决方案3】:

      完成工作后拨打此电话。

       mProgressBar.dismiss();
      

      【讨论】:

        【解决方案4】:

        抱歉,您无法通过不确定的进度条实现这一目标。该控件用于显示正在后台执行某些操作。没有指示此操作何时开始或何时完成。

        所以你要么必须用户确定进度条,要么创建自己的自定义组件

        【讨论】: