android - 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" />
解决方案
根据 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(...)
.
推荐阅读
- pandas - 从熊猫条形图中的图例中删除列名
- java - 通过随机访问文件逐行读取文件并从每一行获取部分字符串
- haskell - 如何创建一个可以采用函数元组而不是单个函数的 fmap?
- html - 占位符在输入焦点上重叠
- javascript - 每个 div 另一种彩虹色
- c# - 如何使用异步编写具有长时间运行功能的 Windows 服务?
- networking - Internet 协议是否进行路由?
- swift - Swift 4 Codable 从数组中获取第一个数组
- webpack - 如何通过代码拆分在 Vue/Webpack webapp 中部分加载 Sass/样式表文件
- fortran - Intel Fortran Compiler 2015 (Mac OS X) 的 TYPE(*) 语法错误