Android:如何使用Interpolator制作水平进度条?

我有一个像这样的进度栏视图:

<ProgressBar android:id="@+id/progress_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100"/> 

它持续3秒,那么如何使用内插器来更新顺利?

 ObjectAnimator animation = ObjectAnimator.ofInt(what_is_in_here?); animation.setDuration(3000); // second animation.setInterpolator(new DecelerateInterpolator()); animation.start(); 

我非常感谢你的帮助。 非常感谢你提前。

Solutions Collecting From Web of "Android:如何使用Interpolator制作水平进度条?"

我find了解决办法:

 progressBar = (ProgressBar) findViewById(R.id.progress_bar); ObjectAnimator animation = ObjectAnimator.ofInt(progressBar, "progress", 100, 0); animation.setDuration(3500); // 3.5 second animation.setInterpolator(new DecelerateInterpolator()); animation.start(); 

这里是一个详细的解释:

创build一个animation对象:

 ObjectAnimator animation = ObjectAnimator.ofInt(progressBar, "progress", 100, 0); 
  • progressBar :在布局中引用ProgressBar;
  • “进展” :要animation的财产的名称;
  • 100:animation的起点;
  • 0:animation的结束点。

并设置插值:

 animation.setInterpolator(new DecelerateInterpolator()); 

我们的animation可以使用不同的插值器,例如:

  • LinearInterpolator:其中变化率是恒定的。
  • DecelerateInterpolator:其中变化率开始迅速,然后减速。

  • AccelerateInterpolator:其中变化率开始缓慢,然后加速。

  • OvershootInterpolator:其中变化向前闪烁并超过最后的值然后返回。

  • 对于其他插补器检查界面android.view.animation.Interpolator。