我在一些设备上用ObjectAnimator类做了一些测试,除了一台设备:华为,P8,Lite 2017,一切都很好。
在此设备上,视图“消失”时,动画开始和“显示”在结尾。这个问题只出现在我使用动画集/动画(Java代码或XML)时,但是使用旧动画类的动画(TranslateAnimation,AlphaAnimation.)工作得很好。
以下是没有问题的设备列表: Nexus 5 Nexus 5X Nexus 9 HTC One M9 GS4 Pixel Alcatel OneTouch Idol 5
这个华为有什么问题?
编辑:我做了一些其他测试,问题似乎只是旋转动画。
ObjectAnimator r = ObjectAnimator.ofFloat(myView, View.ROTATION_Y, 540);
r.setDuration(5000);
r.start();除了华为,其他设备都能工作。
如果我用阿尔法( ALPHA )、TRANSLATION_X (TRANSLATION_X)或Y (Y)取代TRANSLATION_X,那么它正在为华为服务。
下面是一个或多或少相同问题的链接:ObjectAnimator causes ImageView to disappear
发布于 2018-03-29 12:38:18
我在华为设备(P9 Lite)上也有同样的问题。
问题是在转换过程中的“相机距离”。对于华为来说,相机距离的默认值太小,你应该用代码来设置它:
image.setCameraDistance(float) 来自文件:
如果要指定导致不同密度的结果在视觉上一致的距离,请使用以下公式:
float scale = context.getResources().getDisplayMetrics().density;
view.setCameraDistance(distance * scale);https://stackoverflow.com/questions/46845261
复制相似问题