1

在我的应用程序中,我有一个可以更改源的 ImageView。源始终是 Drawable,无论是 Bitmap 还是由 drawable 制成的 xml 动画。但是,当源是动画时,我必须在 Drawable 上调用 start() 方法,从而首先将其转换为 AnimationDrawable。

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

有没有办法检测用作 ImageView 源的 Drawable 的类型,所以只有当它是动画时我才能投射它?

谢谢,尼古拉斯。

4

1 回答 1

0

instanceof 工作正常,谢谢!

我的工作代码:

Drawable drawable = imageView.getDrawable();
if(drawable instanceof AnimationDrawable){
    ((AnimationDrawable) drawable).start();
}
于 2015-03-30T15:53:53.433 回答