Skip to content
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共同决定

INIT

初始化加载,加载还未开始,图片加载器还未被调用,此时ImageHolder可设置属性有

  • imageType : 改变图片类型
  • width : 设置holder宽度,会影响placeHolder宽度
  • height : 设置holder高度,会影响placeHolder高度
  • show : 设置图片是否显示
  • scaleType : 设置图片缩放类型(需要图片加载器支持)
  • autoFix : 是否自动修复

LOADING

加载中,加载器以及开始工作,此时改变width和height属性可用影响到placeHolder宽高

SIZE_READY

图片尺寸大小已知,但还未加载至内存,此时修改sizeHolder可用影响最后加载到内存的图片的尺寸

  • imageWidth: 图片的真实宽度
  • imageHeight: 图片的真实高度
  • sizeHolder: 修改其尺寸改变加载到内存中图片的尺寸(用于图片压缩)

READY

加载成功,还未设置图片,在这里修改width和height属性对图片大小做最终的调整

  • imageWidth: 图片的真实宽度
  • imageHeight: 图片的真实高度

FAILED

图片加载失败,可用调整width和height属性影响errorImage的大小

  • exception : 出现的异常

每个属性的具体含义见ImageHolder

Clone this wiki locally