我有一个ViewFlipper,它在调用showPrevious时运行视图动画。动画效果很好。但问题是它开始延迟超过1秒。现在这似乎并不多,但它严重延迟了应用程序的使用。
我的动画看起来像这样;
Animation inFromLeft = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, -1.0f,
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f);
inFromLeft.setDuration(350);
inFromLeft.setInterpolator(new LinearInterpolator());
Animation outtoRight = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, +1.0f,
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f);
outtoRight.setDuration(350);
outtoRight.setInterpolator(new LinearInterpolator());
我使用setInAnimation
和setOutAnimation
;
setInAnimation(inFromLeft);
setOutAnimation(outtoRight);
然后我使用showPrevious
动画以超过1秒的延迟开始是否有任何原因,动画的startTime为-1且startOffset为0。
答案 0 :(得分:2)
两个建议。首先,如果可能,请切换到使用ViewPager。其次,如果第一个不可能,那么使用基于XML的动画。将代码和资源推出资源通常是一种胜利。
答案 1 :(得分:1)
你确定动画中发生了延迟吗?您是否尝试添加一些日志记录,包括AnimationListener的startAnimation方法?
如果您确定在开始动画后出现延迟,则可以在开始动画之前和完成之后尝试使用traceview(再次使用AnimationListener)。这将告诉你Android在此期间做了什么。
答案 2 :(得分:0)
面对与@MrThys相同的问题,但只能在Gingerbread设备上看到它。在JellyBean设备上没有这样的问题。