我想要这个例子
请帮帮我... W3SCHOOLS_UNION
答案 0 :(得分:1)
在您的布局中,包含以下具有特定drawable的ProgressBar
(注意您应该从尺寸中获取宽度)。最大值在这里很重要:
<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" />
现在使用以下形状在资源中创建drawable。使用半径进行游戏(您可以使用innerRadius
代替innerRadiusRatio
)和厚度值。
循环(Pre Lollipop OR API Level&lt; 21)
<shape
android:innerRadiusRatio="2.3"
android:shape="ring"
android:thickness="3.8sp" >
<solid android:color="@color/yourColor" />
</shape>
循环(&gt; =棒棒糖或API级别&gt; = 21)
<shape
android:useLevel="true"
android:innerRadiusRatio="2.3"
android:shape="ring"
android:thickness="3.8sp" >
<solid android:color="@color/yourColor" />
</shape>
API级别21(Lollipop)默认useLevel “false”。
开始动画
您的代码中的下一步使用ObjectAnimator
为您的布局ProgessBar
的进度字段设置动画。
ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
ObjectAnimator animation = ObjectAnimator.ofInt (progressBar, "progress", 0, 500); // see this max value coming back here, we animale towards that value
animation.setDuration (5000); //in milliseconds
animation.setInterpolator (new DecelerateInterpolator ());
animation.start ();
停止动画
progressBar.clearAnimation();
P.S。与上面的例子不同,它提供了流畅的动画。