我正在使用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中。