Исключение изображения Round Corner
Когда я хочу использовать библиотеку изображений Round-corner из github (например: this), она выдает исключение, я использую этот проект с сайта разработчика Android. Я просто в своем XML-файле меняю QuickContactBadge на CircularImage, а затем в классе библиотеки Circular выдает следующее исключение:
PID: 23756
java.lang.ClassCastException: android.graphics.drawable.TransitionDrawable cannot be cast to android.graphics.drawable.BitmapDrawable
at ir.im.ui.helper.RoundedImageView.onDraw(RoundedImageView.java:65)
Стоит упомянуть еще одну вещь: когда я использую ImageView вместо этой библиотеки, она не выдает исключение. Кто-нибудь знает, в чем причина? и как я могу решить это?
Вот мой XML:
<ir.im.ui.helper.RoundedImageView
android:id="@android:id/icon"
android:layout_height="?android:attr/listPreferredItemHeight"
android:layout_width="?android:attr/listPreferredItemHeight"
android:scaleType="centerCrop"
android:src="@drawable/ic_contact_picture_holo_light"
/>
А вот и Google Sample
<QuickContactBadge android:id="@android:id/icon"
android:layout_height="?android:attr/listPreferredItemHeight"
android:layout_width="?android:attr/listPreferredItemHeight"
android:scaleType="centerCrop"
style="@style/quickContactBadgeStyle"
android:src="@drawable/ic_contact_picture_holo_light"/>
А вот функция, которая выдает исключение:
@Override
protected void onDraw(Canvas canvas) {
if (((BitmapDrawable) getDrawable()) != null) {
mBitmap = ((BitmapDrawable) getDrawable()).getBitmap();
mBitmapShader = new BitmapShader(mBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
}
paint.setAntiAlias(true);
paint.setShader(mBitmapShader);
mRoundRectShape.resize(getWidth(), getHeight());
mRoundRectShape.draw(canvas, paint);
}