Android的ObjectAnimator.ofFloat无法正常工作

我在一个 Android应用程序中使用了ObjectAnimator.ofFloat,它不会在每个设备上都以同样的方式工作.

MainActivity(扩展活动):

Button button1 = (Button) findViewById(R.id.button1);
button1.setonClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startAnimation();
    }
});


public void startAnimation() {
    ImageView aniView = (ImageView) findViewById(R.id.imageView1);
    ObjectAnimator fadeOut = ObjectAnimator.ofFloat(aniView,"alpha",0f);
    fadeOut.setDuration(2000);

    ObjectAnimator mover = ObjectAnimator.ofFloat(aniView,"translationX",-500f,0f);
    mover.setInterpolator(new TimeInterpolator() {
        @Override
        public float getInterpolation(float input) {
            Log.v("MainActivity","getInterpolation() " + String.format("%.4f",input));
            return input;
        }
    });
    mover.setDuration(2000);

    ObjectAnimator fadeIn = ObjectAnimator.ofFloat(aniView,0f,1f);
    fadeIn.setDuration(2000);

    AnimatorSet animatorSet = new AnimatorSet();

    animatorSet.play(mover).with(fadeIn).after(fadeOut);
    animatorSet.start();
}

三星galaxy S4(Android 4.4.2):

getInterpolation() 1,0000
    getInterpolation() 1,0000

三星galaxy S5(Android 4.4.2):

getInterpolation() 0,0000
    getInterpolation() 0,0085
    getInterpolation() 0,0170
    getInterpolation() 0,0255
    ...
    ...
    getInterpolation() 0,9740
    getInterpolation() 0,9825
    getInterpolation() 0,9910
    getInterpolation() 0,9995
    getInterpolation() 1,0000

有人有一个想法,为什么这不能正常工作?

解决方法

galaxy S4上,在“开发人员选项”下,有“动画师持续时间”选项.由于一些野蛮的原因,这是关闭.将其切换到1x后,我在S4上的动画开始工作得很好.这可能是导致您的问题的原因.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...