我已经在某些设备上使用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
答案 0 :(得分:2)
我遇到了与华为设备(P9 Lite)相同的问题。
问题是转换过程中的“相机距离”。华为的摄像机距离默认值太小,您应该通过代码设置:
image.setCameraDistance(float)
来自文档:
如果要指定导致视觉上一致的距离 不同密度的结果,使用以下公式:
float scale = context.getResources().getDisplayMetrics().density;
view.setCameraDistance(distance * scale);