某些设备上的Animator / AnimatorSet问题

时间:2017-10-20 08:34:47

标签: android animation huawei animator animatorset

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

在此设备上,View"消失"动画开始时出现""在末尾。 只有在我使用AnimatorSet / Animator(Java代码或XML)时才会出现此问题,但使用旧动画类(TranslateAnimation,AlphaAnimation ...)的动画效果很好。

以下是没有问题的设备列表: Nexus 5 Nexus 5X Nexus 9 HTC One M9 三星GS4 Pixel XL 阿尔卡特OneTouch偶像5

华为有什么问题?

修改: 我做了一些其他的测试,问题似乎只有旋转动画。

ObjectAnimator r = ObjectAnimator.ofFloat(myView, View.ROTATION_Y, 540);
r.setDuration(5000);
r.start();

适用于除华为以外的所有设备。

如果我用ALPHA或TRANSLATION_X或Y替换ROTATION_Y,它正在为华为工作。

这是一个或多或少相同问题的链接: ObjectAnimator causes ImageView to disappear

1 个答案:

答案 0 :(得分:2)

我遇到了与华为设备(P9 Lite)相同的问题。

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

image.setCameraDistance(float) 

来自文档:

  

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

float scale = context.getResources().getDisplayMetrics().density;
 view.setCameraDistance(distance * scale);