Fresco: как установить цвет оттенка SimpleDraweeView failureImage?

Я использую библиотеку Facebook Fresco для Android (версия 1.11.0).

У меня есть SimpleDraweeView с атрибутом drawable failureImage. Тем не менее, я хотел бы установить цвет оттенка этого рисунка.

Я не нашел "failureImageTint" или связанный с ним. Как бы я это сделал?

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/image_cover"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:layout_marginEnd="6dp"
    fresco:failureImage="@drawable/ic_error_img"
    fresco:failureImageScaleType="fitCenter"
    fresco:roundAsCircle="true" />

person Luiz    schedule 27.12.2018    source источник


Ответы (1)


Согласно коду в Fresco демонстрация приложения на Github. Возможно, вам будет проще делать то, что вы ищете, используя код (они используют SimpleDraweeView внутри DraweeHierarchyFragment) — так как все расширенные атрибуты xml для SimpleDraweeView не содержат ничего о тонировке.

Вот как это будет выглядеть:

SimpleDraweeView draweeView = view.findViewById(R.id.image_cover);

Drawable failureDrawable = getResources().getDrawable(R.drawable.ic_error_black_96dp);
DrawableCompat.setTint(failureDrawable, Color.RED);

draweeView.getHierarchy().setFailureImage(failureDrawable, ScaleType.FIT_CENTER);

Итак, вы выбираете рисуемое изображение для изображения с ошибкой, добавляете цвет оттенка к этому рисуемому изображению, а затем добавляете окрашенное рисуемое изображение в свой SimpleDraweeView, используя setFailureImage(...).

person chornge    schedule 27.12.2018