我正在使用Glide加载图像。
在我的应用程序中,我使用以下示例将SVG图像加载到CardView
中。
GenericRequestBuilder<Uri, InputStream, SVG, PictureDrawable> requestBuilder;
requestBuilder = Glide.with(mContext)
.using(Glide.buildStreamModelLoader(Uri.class, mContext), InputStream.class)
.from(Uri.class)
.as(SVG.class)
.transcode(new SvgDrawableTranscoder(), PictureDrawable.class)
.sourceEncoder(new StreamEncoder())
.cacheDecoder(new FileToStreamDecoder<>(new SVGDecoder()))
.decoder(new SVGDecoder())
.placeholder(R.drawable.modulo)
.error(R.drawable.banner_error)
.animate(android.R.anim.fade_in)
.listener(new SvgSoftwareLayerSetter<Uri>());
requestBuilder
.diskCacheStrategy(DiskCacheStrategy.NONE)
.load(Uri.parse("http://foo.bar/blah"))
.into(cardHolder.iv_card);
ImageView
在XML中有固定的宽度102dp
和固定的高度94dp
。但是图像在加载后变得比它们应该的要小。我做错了什么吗?
scaleType为:android:scaleType="fitXY"
2条答案
按热度按时间lhcgjxsq1#
我决定以an issue on the libs repository的形式打开这个问题,然后我就可以修复这个问题了。
事实证明,这个问题与我的SVG具有固定大小有关,因此为了解决它,我必须修改我的
SvgDecoder.decode
方法,并添加以下三行:方法现在如下所示:
现在它正常工作了。
ttvkxqim2#
除了已接受的答案-对我来说,解决方案不起作用,背后的原因是SVG中没有适当的视图框
正在添加
在更改SVG宽度/高度之前最后固定缩放