-
Notifications
You must be signed in to change notification settings - Fork 561
手动调整图片
zzhoujay edited this page Jul 25, 2017
·
1 revision
手动修复图片需先设置autoFix为false
RichText.from(IMAGE1).autoFix(false).fix(new ImageFixCallback() {
@Override
public void onInit(ImageHolder holder) {
// 加载开始前(未调用图片加载器)
// 修改holder的尺寸改变图片边框的尺寸
}
@Override
public void onLoading(ImageHolder holder) {
// 加载开始前(已进入图片加载器但未开始加载)
// 修改holder的尺寸改变图片边框的尺寸,此时影响到placeHolder显示
}
@Override
public void onSizeReady(ImageHolder holder, int imageWidth, int imageHeight, ImageHolder.SizeHolder sizeHolder) {
// 图片下载完成,但未加载到内存
// 修改sizeHolder的尺寸可以影响加载到内存的图片的大小,可以用于压缩图片
}
@Override
public void onImageReady(ImageHolder holder, int width, int height) {
// 图片已成功加载到内存
// 修改holder的尺寸改变图片边框的尺寸,此时影响最后显示的图片的大小
}
@Override
public void onFailure(ImageHolder holder, Exception e) {
// 加载失败
// 修改holder的尺寸改变图片边框的尺寸,此时影响到errorImage显示
}
}).into(textView);
在每次回调中通过设置holder的尺寸来改变图片边框大小,最终图片显示的大小由边框大小和ScaleType共同决定
初始化加载,加载还未开始,图片加载器还未被调用,此时ImageHolder可设置属性有
- imageType : 改变图片类型
- width : 设置holder宽度,会影响placeHolder宽度
- height : 设置holder高度,会影响placeHolder高度
- show : 设置图片是否显示
- scaleType : 设置图片缩放类型(需要图片加载器支持)
- autoFix : 是否自动修复
加载中,加载器以及开始工作,此时改变width和height属性可用影响到placeHolder宽高
图片尺寸大小已知,但还未加载至内存,此时修改sizeHolder可用影响最后加载到内存的图片的尺寸
- imageWidth: 图片的真实宽度
- imageHeight: 图片的真实高度
- sizeHolder: 修改其尺寸改变加载到内存中图片的尺寸(用于图片压缩)
加载成功,还未设置图片,在这里修改width和height属性对图片大小做最终的调整
- imageWidth: 图片的真实宽度
- imageHeight: 图片的真实高度
图片加载失败,可用调整width和height属性影响errorImage的大小
- exception : 出现的异常
每个属性的具体含义见ImageHolder
by zzhoujay