树莓派提升计划 Android应用用MiniChatAppApp之Glide 图片库

2021SC@SDUSC

导入库:

implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'

应用例子:

package io.rong.callkit.util;

import android.content.Context;
import android.net.Uri;
import android.widget.ImageView;
import cn.rongcloud.rtc.utils.FinLog;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Priority;
import com.bumptech.glide.request.RequestOptions;
import io.rong.callkit.R;

/** Created by dengxudong on 2018/5/18. */
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.rc_default_portrait);
        if (val == null) {
            Glide.with(context)
                    .load(R.drawable.rc_default_portrait)
                    .apply(requestOptions)
                    .into(imageView);
        } else {
            Glide.with(context).load(val).apply(requestOptions).into(imageView);
        }
    }
}

三部曲with,load,into

首先是with:

 

Glide.with() 生命周期控制

  1. with(Context context). 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制。(这里使用的是Context )
  2. with(Activity activity). 使用Activity作为上下文,Glide的请求会受到Activity生命周期控制。
  3. with(FragmentActivity activity).Glide的请求会受到FragmentActivity生命周期控制。
  4. with(android.app.Fragment fragment).Glide的请求会受到Fragment 生命周期控制。
  5. with(android.support.v4.app.Fragment fragment).Glide的请求会受到Fragment生命周期控制。

然后是load

这里使用的是Uri类型

最后into到ImageView 中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值