![](/img/trans.png)
[英]Why not called the cancel method on animatorset directly and what exactly is the animator?
[英]Animator/AnimatorSet issue on some devices
我在某些设备上使用ObjectAnimator类进行了一些测试,除了一台设备外,一切正常:华为P8 Lite 2017。
在此设备上,视图在动画开始时“消失”并在结束时“显示”。 只有在我使用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导致ImageView消失
华为设备(P9 Lite)也遇到了同样的问题。
转换期间的问题是“相机距离”。 华为相机距离的默认值太小,您应该按代码设置:
image.setCameraDistance(float)
来自文档:
如果要指定在不同密度下导致视觉上一致的结果的距离,请使用以下公式:
float scale = context.getResources().getDisplayMetrics().density;
view.setCameraDistance(distance * scale);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.