最近做图片上传的功能,图片选择使用的是crazycodeboy的TakePhoto 框架,TakePhoto的图片加载需要Fresco的支持,因此图片的显示用到了SimpleDraweeView。
最开始在代码中显示图片的时候是这种效果:
在GridView中显示图片
前面一个图片是通过takephoto从系统相册加载的图片,由file的Uri加载而成
后面一张图片是由项目图片加载而来,将resId转换为uri加载
1 | Uri uri =newUri.Builder().scheme("res").path(String.valueOf(R.mipmap.upload_market_license)).build(); |
图片被放大加载了,
1 | mHolder.mImageView.(ImageView.ScaleType.CENTER); |
设置这个属性仍然没有效果
在逐层查看源码后发现

DraweeHierarchy 的一些属性可以在运行时改变。
要改变这些属性,首先获取一个引用:
1 | GenericDraweeHierarchy hierarchy =mHolder.mImageView.getHierarchy(); |

1 | hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.CENTER); |
这样就可以设置我们想要的图片效果了
相机图标居中显示了