package com.sxjs.common.util; import android.graphics.drawable.Drawable; import android.support.annotation.IdRes; import com.facebook.drawee.drawable.ScalingUtils; import com.facebook.drawee.generic.GenericDraweeHierarchy; import com.facebook.drawee.generic.RoundingParams; import com.facebook.drawee.view.SimpleDraweeView; /** * @author:admin on 2017/4/17 17:08. * 加载图片修改参数的帮助类 */ public class ImageLoaderUtil { private SimpleDraweeView draweeView; private GenericDraweeHierarchy hierarchy; private ImageLoaderUtil(SimpleDraweeView draweeView) { this.draweeView = draweeView; hierarchy = draweeView.getHierarchy(); } /** * 获取当前util实例 * @param draweeView imageView实例 * @return 新实例 */ public static ImageLoaderUtil getInstance(SimpleDraweeView draweeView){ return new ImageLoaderUtil(draweeView); } /** * 设置占位图片 * @param id 图片资源id * @return this */ public ImageLoaderUtil setPlaceholderImage(@IdRes int id){ hierarchy.setPlaceholderImage(id); return this; } /** * 设置占位图片 * @param drawable drawable * @return this */ public ImageLoaderUtil setPlaceholderImage(Drawable drawable){ hierarchy.setPlaceholderImage(drawable); return this; } /** * 设置加载失败图片 * @param drawable drawable * @param scaleType ScalingUtils.ScaleType * @return this */ public ImageLoaderUtil setFailureImage(Drawable drawable , ScalingUtils.ScaleType scaleType){ hierarchy.setFailureImage(drawable, scaleType); return this; } /** * 设置加载失败图片 * @param id 图片资源id * @param scaleType ScalingUtils.ScaleType * @return this */ public ImageLoaderUtil setFailureImage(@IdRes int id , ScalingUtils.ScaleType scaleType){ hierarchy.setFailureImage(id, scaleType); return this; } /** * 设置显示图片缩放类型 * @param scaleType facebook包下ScalingUtils.ScaleType * @return this */ public ImageLoaderUtil setActualImageScaleType(ScalingUtils.ScaleType scaleType){ hierarchy.setActualImageScaleType(scaleType); return this; } /** * 设置图片的原角半径(原来为圆角的不能修改为圆圈,反之亦然) * @param radius 圆角半径 * @return this */ public ImageLoaderUtil setRoundingParams(float radius){ RoundingParams roundingParams = hierarchy.getRoundingParams(); if(roundingParams == null){ hierarchy.setRoundingParams(new RoundingParams().setCornersRadius(radius)); }else{ roundingParams.setCornersRadius(radius); hierarchy.setRoundingParams(roundingParams); } return this; } /** * 设置图片渐退时间 * @param fadeDuration 时间毫秒 * @return this */ public ImageLoaderUtil setFadeDuration(int fadeDuration){ hierarchy.setFadeDuration(fadeDuration); return this; } /** * 设置背景图 * @param drawable drawable * @return this */ public ImageLoaderUtil setBackgroundImage(Drawable drawable){ hierarchy.setBackgroundImage(drawable); return this; } /** * 设置加载失败后显示点击重新加载图 * @param id 资源id * @return this */ public ImageLoaderUtil setRetryImage(@IdRes int id){ hierarchy.setRetryImage(id); return this; } /** * 设置叠加图(最后被绘制) * @param drawable drawable * @return this */ public ImageLoaderUtil setOverlayImage(Drawable drawable){ hierarchy.setOverlayImage(drawable); return this; } }