Я пытаюсь реализовать простой ClipDrawable с помощью Android Jellybean (SDK 18). Я не понимаю, почему я получаю ошибку литья для ImageView.getDrawable(), когда это возвращает вытяжку, не BitmapDrawableAndroid: не может использовать BitmapDrawable для ClipDrawable
Вот мой соответствующий код в OnCreate() о деятельности:
ImageView image = (ImageView) findViewById(R.id.guage_one);
ClipDrawable drawable = (ClipDrawable) image.getDrawable();
drawable.setLevel(10000);
Почему я должен получить ClassCastException для этого? Я знаю, что BitmapDrawable и ClipDrawable являются подклассами Drawable, поэтому вы не можете передавать их друг другу, я это знаю. Но почему image.getDrawable() возвращает BitmapDrawable, а не только drawable? Я что-то пропустил в документации?
Может быть, глупый вопрос, почему бы не использовать image.getDrawable для комбинирования конструктора для ClipDrawable? –
Этот ответ может помочь: http://stackoverflow.com/questions/4862960/explicit-casting-from-super-class-to-subclass –