【发布时间】:2018-01-17 09:34:38
【问题描述】:
我正在尝试使用 AnimatedVectorDrawableCompat 在我的 Android 应用中实现动画,以实现 API >= 21 的兼容性。
我希望动画在 Activity 期间循环播放。我可以播放动画,而且它在 API >= 25 上也可以正常循环。但是当我在 API 21 到 24 的设备或模拟器上运行它时,我只能看到一次动画。如果我在回调方法中设置断点,我看到它也执行了回调,但动画不会重复。
我发现动画在不同的线程上运行,因为它不会阻塞 UI。
这是方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.image_view1);
final AnimatedVectorDrawableCompat anim = AnimatedVectorDrawableCompat.create(this, R.drawable.avd_pass_inside);
imageView.setImageDrawable(anim);
anim.registerAnimationCallback(new Animatable2Compat.AnimationCallback() {
@Override
public void onAnimationEnd(Drawable drawable) {
anim.start();
}
});
anim.start();
}
根据我阅读的内容,使用 Compat 库应该可以使其适用于 14 及以上的所有 API 级别,但我什至不必去那里,因为我的应用程序的其余部分有最低要求 21 .
是否有一些(最好是非 hacky :))方法可以使这项工作在这些 API 级别上保持一致?它是一个错误吗?我错过了什么吗?
【问题讨论】:
-
没有一条评论? 风滚草
标签: android animation android-animation animatedvectordrawable