문서 here에 따르면 PNG 리소스는 BitmapDrawable
으로 변환되어야합니다.Android-png 리소스가 Android 4.0의 ColorDrawable로 변환되었습니다.
ClassCastException
의 충돌에서 발생되는 이상한 행동을 관찰 해요 그러나 나는 사용자 정의보기의 생성자에서 다음을 수행하려고하면 (
InvocationTargetException
에 싸여)
... tempDrawable = typedArr.getDrawable(R.styleable.CustomView_src); // Source points to a png file Log.i("TestPNGToResource", "Canonical Class Name " + tempDrawable.getClass().getCanonicalName()); tempBitmap = ((BitmapDrawable) tempDrawable).getBitmap(); ...내가 안드로이드 2.2에 로그인 한 다음 참조
2.3
09-24 13:21:37.575: I/TestPNGToResource(532): Canonical Class Name android.graphics.drawable.ColorDrawable
이유는 자원이 BitmapDrawable로 변환되고 있지?
png에 색이있는 픽셀이있는 경우에도 여전히 발생하고 있습니까? 'aapt'의 png 최적화가 단색 이미지를 실제로 ColorDrawable로 변환 할 수 있는지 또는 사용자 정의 속성을 해결하는 동안 오류가있는 경우 확실하지 않습니다. – zapl
컬러 픽셀이있는 이미지에서는 발생하지 않습니다. 맞춤 속성에 오류가 발생하면 모든 기기에서 오류가 발생한 것입니다. 4.3을 실행하는 Nexus 4에서 예상대로 작동합니다. – 500865