繁体   English   中英

某些设备上的Animator / AnimatorSet问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM