我正在使用Facebook的Fresco Android库(版本1.11.0)。

我有一个带有SimpleDraweeView可绘制属性的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" />

最佳答案

根据Github上Fresco showcase app中的代码,您可能会发现使用代码更容易完成所需的工作(它们在DraweeHierarchyFragment中使用SimpleDraweeView)-因为SimpleDraweeView的所有advanced xml attributes都不会列出任何内容关于着色。

如下所示:

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);


因此,您可以为故障图像选择一个可绘制的图像,为该可绘制的图像添加淡色,然后使用setFailureImage(...)将有色的可绘制图像添加到SimpleDraweeView中。

10-08 03:38