如何在android中创建循环ProgressBar?

如何在android中创建循环ProgressBar?

您是否知道如何制作像Google Fit应用程序一样的循环进度条?


慕沐林林
浏览 762回答 2
2回答

九州编程

您可以尝试这个Circle Progress库注意:请始终使用相同的宽度和高度来查看进度视图DonutProgress:&nbsp;<com.github.lzyzsd.circleprogress.DonutProgress &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:id="@+id/donut_progress" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginLeft="50dp" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="100dp" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="100dp" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;custom:circle_progress="20"/>CircleProgress:&nbsp;&nbsp;<com.github.lzyzsd.circleprogress.CircleProgress &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:id="@+id/circle_progress" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginLeft="50dp" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="100dp" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="100dp" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;custom:circle_progress="20"/>ArcProgress:<com.github.lzyzsd.circleprogress.ArcProgress &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:id="@+id/arc_progress" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:background="#214193" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginLeft="50dp" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="100dp" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="100dp" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;custom:arc_progress="55" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;custom:arc_bottom_text="MEMORY"/>

PIPIONE

自己创建这个很容易在您的布局中包含以下ProgressBar具有特定可绘制的内容(请注意,您应该从尺寸中获取宽度)。最大值在这里很重要:<ProgressBar &nbsp;&nbsp;&nbsp;&nbsp;android:id="@+id/progressBar" &nbsp;&nbsp;&nbsp;&nbsp;style="?android:attr/progressBarStyleHorizontal" &nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="150dp" &nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="150dp" &nbsp;&nbsp;&nbsp;&nbsp;android:layout_alignParentBottom="true" &nbsp;&nbsp;&nbsp;&nbsp;android:layout_centerHorizontal="true" &nbsp;&nbsp;&nbsp;&nbsp;android:max="500" &nbsp;&nbsp;&nbsp;&nbsp;android:progress="0" &nbsp;&nbsp;&nbsp;&nbsp;android:progressDrawable="@drawable/circular"&nbsp;/>现在使用以下形状在资源中创建drawable。使用半径(您可以使用innerRadius而不是innerRadiusRatio)和厚度值进行游戏。循环(Pre Lollipop OR API Level <21)&nbsp;&nbsp;&nbsp;<shape &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:innerRadiusRatio="2.3" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:shape="ring" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:thickness="3.8sp"&nbsp;> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<solid&nbsp;android:color="@color/yourColor"&nbsp;/> &nbsp;&nbsp;&nbsp;</shape>圆形(> = Lollipop OR API Level> = 21)&nbsp;&nbsp;&nbsp;&nbsp;<shape &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:useLevel="true" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:innerRadiusRatio="2.3" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:shape="ring" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:thickness="3.8sp"&nbsp;> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<solid&nbsp;android:color="@color/yourColor"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</shape>默认情况下,API Level 21(Lollipop)中的useLevel为“false”。开始动画在代码中接下来使用an&nbsp;ObjectAnimator来ProgessBar为布局的progress字段设置动画。ProgressBar&nbsp;progressBar&nbsp;=&nbsp;(ProgressBar)&nbsp;view.findViewById(R.id.progressBar);ObjectAnimator&nbsp;animation&nbsp;=&nbsp;ObjectAnimator.ofInt(progressBar,&nbsp;"progress",&nbsp;0,&nbsp;500);&nbsp;//&nbsp;see&nbsp;this&nbsp;max&nbsp;value&nbsp;coming&nbsp;back&nbsp;here,&nbsp;we&nbsp;animate&nbsp;towards&nbsp;that&nbsp;valueanimation.setDuration(5000);&nbsp;//&nbsp;in&nbsp;millisecondsanimation.setInterpolator(new&nbsp;DecelerateInterpolator());animation.start();停止动画progressBar.clearAnimation();PS不同于上面的例子,它给出了流畅的动画。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android