Android 将Drawable强制转换为BitmapDrawable时的ClassCastException

Android 将Drawable强制转换为BitmapDrawable时的ClassCastException,android,Android,以下代码在Android 8、9和10上导致ClassCastException。但在安卓5、6和7上则不然 Bitmap bitmap = ((BitmapDrawable) aDrawable).getBitmap(); 那又怎么样?这意味着aDrawable在新SDK上不可位图绘制。你没有说它来自哪里,所以很难说到底发生了什么。请使用调试器或在错误消息中检查它的实型。请阅读答案的注释:BitmapDrawable源自Android 29中的Drawable。@RujulGandhi,谢

以下代码在Android 8、9和10上导致ClassCastException。但在安卓5、6和7上则不然

Bitmap bitmap = ((BitmapDrawable) aDrawable).getBitmap();


那又怎么样?这意味着aDrawable在新SDK上不可位图绘制。你没有说它来自哪里,所以很难说到底发生了什么。请使用调试器或在错误消息中检查它的实型。请阅读答案的注释:BitmapDrawable源自Android 29中的Drawable。@RujulGandhi,谢谢。我需要将Drawable(应用程序图标)更改为BitmapDrawable,以便调整其大小并在GridView中显示。是否有一种方法可以将可绘制位图调整为位图。createScaledBitmap(位图)?或者如何将可绘制图像转换为位图?
compileSdkVersion 29
buildToolsVersion '29.0.2'

minSdkVersion 21
targetSdkVersion 29