2015-08-17 45 views
3

Android的documentation说,你可以设置一个刷新率:如何设置PropertyAnimation的帧速率?

帧刷新延迟:您可以指定多久刷新动画的帧。默认设置为每10毫秒刷新一次,但应用程序刷新帧的速度最终取决于系统整体的繁忙程度以及系统为底层计时器提供服务的速度。

但是,它并没有告诉你如何。我到处搜索过,但在ObjectAnimator,PropertyAnimator或Animator中没有这样的方法。

编辑:我目前使用的动画更新只反应一次,每5帧 -

colorFade.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     int interpolator = 0; 

     @Override 
     public void onAnimationUpdate(ValueAnimator animation) { 
      if ((interpolator++) % 5 == 0) 
       invalidate(mHandlerBounds); 
     } 
    }); 
+3

请参阅'public static void setFrameDelay(long frameDelay)' – pskink

回答

4

由于@pskink说,使用:

public static void setFrameDelay(long frameDelay) 
ValueAnimator

。您可以在文档中看到以下内容:

动画每帧之间的时间量(以毫秒为单位)。这是动画尝试遵守的请求时间,但帧之间的实际延迟可能不同,具体取决于系统负载和功能。这是一个静态函数,因为相同的延迟将应用于所有动画,因为它们都是从单个定时循环中运行的。当动画系统使用外部定时源(例如显示刷新率(vsync))来管理动画时,帧延迟可能会被忽略。

+0

我看到了 - 它是一个适用于所有动画的静态函数。这可能不是我正在寻找的,因为我试图降低小动画的帧速率以允许更大的动画更多的处理时间。 – Yervant

+0

@Yervant你找到了解决方案。我试着在我的动画中看到1fps ValueAnimator.setFrameDelay(1000)。但它仍然非常流畅。 (我不喜欢)。我认为该功能没有按预期工作。 – SafaOrhan