Исключение изображения 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);
    }

0 ответов

Другие вопросы по тегам