如何检测 Android ImageView 可绘制对象是否为动画?

How to detect if an Android ImageView drawable is an anim?

在我的应用程序中,我有一个可以更改源的 ImageView。源始终是一个 Drawable,可以是位图或由 drawable 构成的 xml 动画。 但是,当源是动画时,我必须先调用 Drawable 的 start() 方法,然后将其转换为 AnimationDrawable。

当然,将非动画 Drawable 转换为 AnimationDrawable 会抛出 ClassCastException。我目前抓住了它并且效果很好。 但我对此并不满意,如果不是动画,我宁愿不要尝试投射 Drawable。

有没有一种方法可以检测用作 ImageView 源的 Drawable 的类型,以便我可以仅在它是动画时投射它?

谢谢, 尼古拉斯.

instanceof 工作正常,谢谢!

我的工作代码:

Drawable drawable = imageView.getDrawable();
if(drawable instanceof AnimationDrawable){
    ((AnimationDrawable) drawable).start();
}