Android Jellybean (SDK 18)을 사용하여 간단한 ClipDrawable을 구현하려고합니다. 내가 ImageView.getDrawable (위해 주조 오류를 받고 있어요 내가 왜) 이해하지 못하는 그 활동의 드로어 블,하지 OnCreate 아닌 BitmapDrawableAndroid : BitmapDrawable을 ClipDrawable에 캐스팅 할 수 없습니다.
여기 내 관련 코드() 반환 할 때 :
ImageView image = (ImageView) findViewById(R.id.guage_one);
ClipDrawable drawable = (ClipDrawable) image.getDrawable();
drawable.setLevel(10000);
을
왜이 경우 ClassCastException이 발생합니까? BitmapDrawable 및 ClipDrawable은 Drawable의 하위 클래스이므로 서로를 캐스팅 할 수 없다는 것을 알고 있습니다. 그러나 image.getDrawable()이 drawable이 아닌 BitmapDrawable을 반환하는 이유는 무엇입니까? 문서에서 뭔가 빠졌습니까?
어쩌면 바보 같은 질문입니다. image.getDrawable을 사용하여 ClipDrawable의 생성자에 피드를 사용하지 않으시겠습니까? –
이 대답은 도움이 될 수 있습니다 : http://suackoverflow.com/questions/4862960/explicit-casting-from-super-class-to-subclass –