Приведение из RoundedBitmapDrawable к BitmapDrawable

Все работало хорошо, прежде чем начать использовать RoundedBitmapDrawable для округления Bitmapуглы.

После начала использования RoundedBitmapDrawable, Я собираюсь:

java.lang.ClassCastException: android.support.v4.graphics.drawable.RoundedBitmapDrawable21 нельзя преобразовать в android.graphics.drawable.BitmapDrawable

Код:

BitmapDrawable bitmapDrawable = ((BitmapDrawable) imageView.getDrawable());

1 ответ

Между этими двумя типами нет иерархической связи, за исключением того, что они имеют одного и того же родителя. Вместо этого вы можете проверить тип рисования во время выполнения и привести соответственно

if (imageView.getDrawable() instanceof android.support.v4.graphics.drawable.RoundedBitmapDrawable) {
    RoundedBitmapDrawable drawable = (RoundedBitmapDrawable) imageView.getDrawable();
    Bitmap roundedBitmap = drawable.getBitmap();
    // ...
}
Другие вопросы по тегам