使用applyTransformaiton和插值时间问题查看动画

时间:2014-06-28 15:04:40

标签: android animation

我试图做一个简单的展开视图动画。 我有一个TextView设置为包装内容。 当我使用expandHeight()方法时,我会覆盖applyTransformation以扩展视图的高度。

这是applayTransformation方法:

       protected void applyTransformation(float interpolatedTime, Transformation t) {
            Log.d("LOGGY", "interpolated: " + interpolatedTime);
            if (interpolatedTime >= 1.0){
                v.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
            } else {
                v.getLayoutParams().height = (int) (targetHeight * interpolatedTime);
            }

            v.requestLayout();
        }

简单。然而,即使在简单的布局上,TextView也会扩大口吃。 当我检查Logcat的interplatedTime值时,这就是我得到的:

D/LOGGY﹕ interpolated: 0.0
D/LOGGY﹕ interpolated: 0.0
D/LOGGY﹕ interpolated: 0.17647204
D/LOGGY﹕ interpolated: 0.5564282
D/LOGGY﹕ interpolated: 0.8852566
D/LOGGY﹕ interpolated: 1.0
D/LOGGY﹕ interpolated: 1.0

显然,每次通话之间都有很大的跳跃。 0.1,0.5,0.8,1

我在每个地方寻找更平滑动画的解决方案......没有找到。 然而,当我查看谷歌的一些应用程序时......最流畅的动画。 它是什么?魔法?

请协助......

0 个答案:

没有答案