2 qq 36340344 qq_36340344 于 2017.01.16 16:37 提问

android属性动画卡顿问题,求大神指点迷津。

ValueAnimator colseAnimator = ValueAnimator.ofFloat(closeWidth, 0);
colseAnimator.addUpdateListener(new AnimatorUpdateListener() {

        LinearLayout.LayoutParams params = (LayoutParams) 
                closeView.getLayoutParams();
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {

            float f = (Float) animation.getAnimatedValue();
            params.width = (int) f;
            closeView.setLayoutParams(params);
        }
    });

5个回答

p0pp0p0
p0pp0p0   2017.01.16 16:49
已采纳

你可以尝试从这几个方面处理一下:
1. 既然params.width是int类型的, 那么就不要使用ValueAnimator.ofFloat,直接使用ValueAnimator.ofInt, 避免强制类型转换。
2. setLayoutParams后索性直接调用一下invalidate(),
3. ValueAnimator如果时间太短的话可能导致回调onAnimationUpdate次数少, 看起来卡顿, 适当延长时间,
另外interpolator(虽然你这里没有写)如果你有指定的话,尽量使用默认构造函数,不要指定小数,那将引发大运算量

p0pp0p0
p0pp0p0 一般情况下, 如果认为动画卡断, 停掉其他的异步任务, 或者单独开一个小demo验证是不是真的是动画有问题, 如果是动画问题再单独修改动画, 感觉你的动画思路是对的。
一年多之前 回复
qq_36340344
qq_36340344 回复p0pp0p0: 只有一个时间刷新的异步任务,但我设置的是一分钟一次。
一年多之前 回复
qq_36340344
qq_36340344 大神下面是我要实现的效果,文字的收缩和展开,可能我的思路不对,能不能提供一下思路呢?感谢!
一年多之前 回复
p0pp0p0
p0pp0p0 回复hnahdfhb: 从log截图上是看不出来有没有丢帧的, 不知道你有没有在动画的进行过程中执行异步逻辑处理, 如果有的话,是会有卡顿的
一年多之前 回复
qq_36340344
qq_36340344 按照ofInt还是卡顿,像您说的回调onAnimationUpdate次数少,延长时间的话,但我动画不能再延长时间了,不能太慢。
一年多之前 回复
qq_36340344
qq_36340344 感谢回答!
一年多之前 回复
qq_36340344
qq_36340344   2017.01.16 17:11

图片说明

qq_36340344
qq_36340344   2017.01.16 17:11

图片说明

qq_36590778
qq_36590778   2017.01.16 17:15

可以跟着这个从头做一遍,看看还会不会出现卡顿现象>>Android开发-属性动画项目公开课

qq_36340344
qq_36340344   2017.01.16 17:16

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android属性动画会卡的分析
参考: Android学习分享:执行某ViewGroup的动画时,子控件太多导致动画执行卡顿的问题 为什么Android的app调用系统动画的就非常流畅,而自己做动画的就很卡顿,严重的像淘宝京东这样的掉帧厉害? Android 中关于属性动画的一些思考,或许能为你解决一定的性能问题
Android 中关于属性动画的一些思考,或许能为你解决一定的性能问题
用动画用的久了渐渐的喜欢上她了,虽然它或许并不是女的,但我希望是~~ 用的久了,我渐渐的思考性能的问题了;在我的一篇([Material Design] MaterialButton 效果进阶 动画自动移动进行对齐效果)介绍按钮点击特效的文章中使用了大量的属性动画,但是在后来我想了很久,其是只需要一个属性动画就能解决所有问题。 下面咱们来说说怎么把多个属性动画合成一个。
Android属性动画优化(更高效的使用属性动画)
Android属性动画优化
Android旋转动画不停顿
package com.example.demoandroid; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.animation.Animation; import android.view.animation.Animati
首次进入Activity、动画卡顿问题的解决方案
初步思路,等待Activity的转场动画完成后,再开始页面内的动画
解决移动端动画卡顿问题
1、开启translateZ或 translate3d webkit-transform: translateZ(0);  -moz-transform: translateZ(0);  -ms-transform: translateZ(0);  -o-transform: translateZ(0);  transform: translateZ(0); web
ScrollView中嵌套ViewFlow滑动卡顿解决办法
ScrollView中嵌套ViewFlow滑动卡顿解决办法
Android 界面滑动卡顿分析与解决方案
导致Android界面滑动卡顿主要有两个原因: 1.UI线程(main)有耗时操作 2.视图渲染时间过长,导致卡顿 目前只讲第1点,第二点相对比较复杂待以后慢慢研究。 众所周知,界面的流畅度主要依赖FPS这个值,这个值是通过(1s/渲染1帧所花费的时间)计算所得,FPS值越大视频越流畅,所以就需要渲染1帧的时间能尽量缩短。正常流畅度的FPS值在60左右,即渲染一帧的时间不应大于17ms。
android activity刚打开时内部动画卡顿问题
最近遇到这个问题,一个activity中有一个imageview的旋转动画,当activity刚打开时,前几秒这个旋转的动画没有转动的过程,过了0.几秒以后直接卡到某个未知接着转.到处搜索都是说activity出现时的过渡动画的问题,感觉人类语言不足以精简的表达这种事情ORZ.Google后找到了这个文章 和 这个文章,大致就是说: It’s important to note that the
android 动画卡顿分析工具
Android应用性能优化之分析工具[二]   Android应用性能优化之分析工具   上一次记录了解决过度绘制的过程,这一次,想先弄清个概念性的东西,就是如何判断顺不顺畅?   这东西其实最初我自己也觉得有点废话,用起来会卡就明显是不顺畅咯。   但这东西就跟我很想吐槽很多应用一样,明明那么卡还放出来一样的道理。 理论永远是理论,实践才是第一生产力。     因为我自己的