首页 > 解决方案 > Fresco:如何设置 SimpleDraweeView failureImage tint color?

问题描述

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

我有一个SimpleDraweeView带有failureImage可绘制属性的。但是,我想设置这个drawable的色调。

我没有找到“ 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" />

标签: androidfresco

解决方案


根据 Github 上 Fresco展示应用程序中的代码,您可能会发现使用代码(他们在 DraweeHierarchyFragment 中使用 SimpleDraweeView)更容易做您正在寻找的事情 - 因为 SimpleDraweeView 的所有高级 xml 属性都没有列出任何关于着色。

这是它的样子:

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(...).


推荐阅读