Android 某些设备上的Animator/AnimatorSet问题

Android 某些设备上的Animator/AnimatorSet问题,android,animation,huawei-mobile-services,animator,animatorset,Android,Animation,Huawei Mobile Services,Animator,Animatorset,我已经在一些设备上使用ObjectAnimator类进行了一些测试,除了一台设备:华为P8 Lite 2017外,一切正常 在该设备上,动画开始时视图“消失”,并在动画结束时“出现”。 只有在使用AnimatorSet/Animator(Java代码或XML)时才会出现此问题,但使用旧动画类(TranslateAnimation、AlphaAnimation…)的动画工作正常 以下是没有问题的设备列表: Nexus 5 Nexus 5X 关系9 HTC一号M9 三星GS4 像素XL 阿尔卡特一触

我已经在一些设备上使用ObjectAnimator类进行了一些测试,除了一台设备:华为P8 Lite 2017外,一切正常

在该设备上,动画开始时视图“消失”,并在动画结束时“出现”。 只有在使用AnimatorSet/Animator(Java代码或XML)时才会出现此问题,但使用旧动画类(TranslateAnimation、AlphaAnimation…)的动画工作正常

以下是没有问题的设备列表: Nexus 5 Nexus 5X 关系9 HTC一号M9 三星GS4 像素XL 阿尔卡特一触即发偶像5

这个华为有什么问题

编辑: 我已经做了一些其他的测试,问题似乎只是与旋转动画

ObjectAnimator r = ObjectAnimator.ofFloat(myView, View.ROTATION_Y, 540);
r.setDuration(5000);
r.start();
适用于除华为以外的所有设备

如果我用ALPHA或TRANSLATION\ux或Y替换ROTATION\uy,它将在华为上工作

这里有一个或多或少与相同问题相关的链接:

我在华为设备(P9 Lite)上也遇到了同样的问题

问题是变换过程中的“摄影机距离”。华为相机距离的默认值太小,您应该按代码设置:

image.setCameraDistance(float) 
从文件:

如果要指定一个距离,使视觉一致 结果在不同密度下,使用以下公式:


我不知道
消失
/
出现
的真正含义是什么,但很可能动画师在
开发者选项
下被禁用,就好像View.VISIBILITY=不可见一样。我已经检查了开发选项,动画比例是“1X”动画是启用(1X)的。所以没有动画工作在手机上?即使是在home launcher应用程序中,也只有在我的应用程序中。我已经测试了ObjectAnimator.Offload(Rotation).setDuration(1秒),视图显示,在1秒内不可见,并在动画结束时显示。这太疯狂了。
float scale = context.getResources().getDisplayMetrics().density;
 view.setCameraDistance(distance * scale);