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

Android 使用ApplyTransformation和插值时间问题查看动画,android,animation,Android,Animation,我正在尝试做一个简单的展开视图动画。 我有一个设置为包装内容的文本视图。 当我使用expandHeight()方法时,我会覆盖applyTransformation以扩展视图的高度 这是applayTransformation方法: protected void applyTransformation(float interpolatedTime, Transformation t) { Log.d("LOGGY", "interpolated: " + i

我正在尝试做一个简单的展开视图动画。 我有一个设置为包装内容的文本视图。 当我使用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的InterlatedTime值时,我得到的是:

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

我到处寻找更平滑动画的解决方案。。。没有找到。 然而,当我看到谷歌的一些应用程序时。。。有史以来最流畅的动画。 这是怎么一回事?魔法


请协助……

您使用了什么插值器?线性打印机?动画的持续时间是多少?我尝试了LinearInterpolator(也是默认的)和AcceleratedAccelerateInterpolator。AcceleratedAccelerateInterpolator看起来有点平滑,但仍然会结巴。动画持续时间为250ms。因此,您的帧速率为5*4,还不错,顺便说一句,默认值为ADI not LIyes,如果速度较慢,请尝试创建自定义视图组,以便快速显示子视图。问题在于持续时间,请尝试将持续时间设置为500或更大,然后您会注意到它会更平滑