要解决Android中RecyclerView列表中SVG可绘制对象停止工作或出现故障的问题,可以尝试以下解决方法:
implementation 'com.github.bumptech.glide:glide:4.12.0'
kapt 'com.github.bumptech.glide:compiler:4.12.0'
public void bind(SVG svg) {
ImageView imageView = itemView.findViewById(R.id.svgImageView);
RequestBuilder requestBuilder = Glide.with(itemView.getContext())
.as(PictureDrawable.class)
.listener(new SvgSoftwareLayerSetter());
// 加载SVG
requestBuilder.load(svg)
.into(imageView);
}
public class SvgSoftwareLayerSetter implements RequestListener {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(PictureDrawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {
Drawable drawable = resource;
drawable.setTintList(ColorStateList.valueOf(Color.BLACK)); // 设置SVG的颜色
return false;
}
}
使用以上步骤,你应该能够解决RecyclerView列表中SVG可绘制对象停止工作或出现故障的问题。