Android 如何判断后台返回的图片地址是否加载成功?

6 篇文章 0 订阅
4 篇文章 0 订阅

在这里插入图片描述

在项目实战中,有需求对图片做显示处理,这里显示图片应用的是glide,由于功能是在app里面的,就不方便把效果展示出来了

   implementation 'com.github.bumptech.glide:glide:4.9.0'

在做项目的时候,不能一味的cv,也要多方位考虑,这样自己才能有所提升。
这里在做图片处理的时候,由于图片地址是后台返回的。作为移动开发,我们无法确认图片什么时候加载成功?什么时候加载失败?

这里优化很简单,无非就是网络加载成功就显示图片;如果网络加载失败,给它设置一张默认照片

方式一:
ImageView image;

if (viewHolder.image.getDrawable() == null) {
    Log.e("图片地址 >>>>", "getView: 图片加载失败");
    viewHolder.image.setBackground(context.getResources().getDrawable(R.drawable.order_img));
} else {
    Log.e("图片地址 >>>>", "getView: 图片加载成功");
    Glide.with(context).load(img).into(viewHolder.image);
}
方式二:
/**
 * 异常占位图
 * 如果因为某些异常情况导致图片加载失败,
 * 比如说手机网络信号不好,这个时候就显示这张异常占位图
 */
Glide.with(context)
         .load(img)
         .placeholder(R.drawable.order_img)//加载成功前显示的照片
         .dontAnimate()
         .error(R.drawable.order_img)//异常显示的照片
         .into(viewHolder.image);
方式三:
public class GlideUtils {

    private static final String TAG = GlideUtils.class.getSimpleName();

    public static void showBlurTransformation(Context context, ImageView imageView ,Uri val){
        if(val==null){return;}
        try {
            Glide.with(context)
                    .load(val)
                    .apply(RequestOptions.bitmapTransform(new GlideBlurformation(context)))
                    .apply(new RequestOptions().centerCrop())
                    .into(imageView);
        } catch (Exception e) {
            e.printStackTrace();
            FinLog.e(TAG, "Glide Utils Error="+e.getMessage());
        } catch (NoSuchMethodError noSuchMethodError){
            noSuchMethodError.printStackTrace();
            FinLog.e(TAG, "Glide NoSuchMethodError = "+noSuchMethodError.getMessage());
        }
    }


    public static void showRemotePortrait(Context context, ImageView imageView ,Uri val){
        RequestOptions requestOptions=new RequestOptions();
        requestOptions.transform(new GlideRoundTransform());
        requestOptions.priority(Priority.HIGH);
        requestOptions.placeholder(R.drawable.order_img);
        if(val==null){
            Glide.with(context)
                    .load(R.drawable.order_img)
                    .apply(requestOptions)
                    .into(imageView);
        }else{
            Glide.with(context)
                    .load(val)
                    .apply(requestOptions)
                    .into(imageView);
        }
    }
}

调用此GlideUtils 工具类

if(null != userInfo && null != userInfo.getPortraitUri())
	GlideUtils.showBlurTransformation(SingleActivity.this, img, null != userInfo ? userInfo.getPortraitUri() : null);
}
  • order_img
    order_img
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉莫帅

你的鼓励将是我的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值