首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在android中创建循环ProgressBar?

如何在android中创建循环ProgressBar?
EN

Stack Overflow用户
提问于 2014-11-30 20:46:31
回答 2查看 188.3K关注 0票数 153

你知道如何制作一个像Google Fit应用程序一样的圆形进度条吗?如下图所示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-03 16:09:07

您可以试用此Circle Progress

注意:对于进度视图,请始终使用相同的宽度和高度

DonutProgress:

代码语言:javascript
复制
 <com.github.lzyzsd.circleprogress.DonutProgress
        android:id="@+id/donut_progress"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:circle_progress="20"/>

CircleProgress:

代码语言:javascript
复制
  <com.github.lzyzsd.circleprogress.CircleProgress
        android:id="@+id/circle_progress"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:circle_progress="20"/>

ArcProgress:

代码语言:javascript
复制
<com.github.lzyzsd.circleprogress.ArcProgress
        android:id="@+id/arc_progress"
        android:background="#214193"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:arc_progress="55"
        custom:arc_bottom_text="MEMORY"/>
票数 129
EN

Stack Overflow用户

发布于 2014-12-03 18:32:14

你可以很容易的自己创建这个

在您的布局中,包含以下具有特定可绘制的ProgressBar (请注意,您应该从尺寸中获取宽度)。最大值在这里很重要:

代码语言:javascript
复制
<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:max="500"
    android:progress="0"
    android:progressDrawable="@drawable/circular" />

现在用下面的形状在你的资源中创建可绘制的。使用半径(可以使用innerRadius而不是innerRadiusRatio)和厚度值。

循环(棒棒糖前或空气污染指数水平< 21)

代码语言:javascript
复制
   <shape
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="3.8sp" >
        <solid android:color="@color/yourColor" />
   </shape>

通告( >=棒棒糖或API Level >= 21)

代码语言:javascript
复制
    <shape
        android:useLevel="true"
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="3.8sp" >
        <solid android:color="@color/yourColor" />
     </shape>

在21级(棒棒糖)中,useLevel默认为"false"

开始动画

接下来,在您的代码中,使用ObjectAnimator对布局的ProgessBar的进度字段进行动画处理。

代码语言:javascript
复制
ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
ObjectAnimator animation = ObjectAnimator.ofInt(progressBar, "progress", 0, 500); // see this max value coming back here, we animate towards that value
animation.setDuration(5000); // in milliseconds
animation.setInterpolator(new DecelerateInterpolator());
animation.start();

停止动画

代码语言:javascript
复制
progressBar.clearAnimation();

另外,与上面的例子不同,它提供了流畅的动画效果。

票数 342
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27213381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档