在我的应用程序中,我有一个可以更改源的ImageView。源始终是Drawable,可以是由drawables构成的Bitmap或xml anim。 但是,当源是动画时,我必须在Drawable上调用start()方法,然后首先将它转换为AnimationDrawable。
当然,非动画Drawable强制转换为AnimationDrawable会抛出ClassCastException。我目前抓住了它并且效果很好。 但我对此并不满意,如果它不是动画,我宁愿不尝试施放Drawable。
有没有办法检测用作ImageView源的Drawable的类型,所以只有当它是一个动画时我才能投射它?
谢谢, 尼古拉斯。
答案 0 :(得分:0)
instanceof工作正常,谢谢!
我的工作代码:
Drawable drawable = imageView.getDrawable();
if(drawable instanceof AnimationDrawable){
((AnimationDrawable) drawable).start();
}