使用Fresco的图片ScaleType问题

最近做图片上传的功能,图片选择使用的是crazycodeboy的TakePhoto框架,TakePhoto的图片加载需要Fresco的支持,因此图片的显示用到了SimpleDraweeView。

最开始在代码中显示图片的时候是这种效果:


使用Fresco的图片ScaleType问题_第1张图片
在GridView中显示图片

前面一个图片是通过takephoto从系统相册加载的图片,由file的Uri加载而成

后面一张图片是由项目图片加载而来,将resId转换为uri加载

Uri uri =newUri.Builder().scheme("res").path(String.valueOf(R.mipmap.upload_market_license)).build();

图片被放大加载了,mHolder.mImageView.(ImageView.ScaleType.CENTER);设置这个属性仍然没有效果

在逐层查看源码后发现



DraweeHierarchy 的一些属性可以在运行时改变。

要改变这些属性,首先获取一个引用:

GenericDraweeHierarchy hierarchy =mHolder.mImageView.getHierarchy();

hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.CENTER);

这样就可以设置我们想要的图片效果了


使用Fresco的图片ScaleType问题_第2张图片
相机图标居中显示了

你可能感兴趣的:(使用Fresco的图片ScaleType问题)