Android新版Glide的RequestManager加载管理器

使用Glide加载图片,load完后,通过into就可以把图片放到ImageView里面。但是有时候可能只是想加载一张原始的图片资源File,至于如何放到,什么时候放,开发者想自己控制,那么可以使用Glide提供的RequestManager中onResourceReady,RequestManager的onResourceReady提供一个回调接口,在这里可以拿到通过Glide加载到的图片资源原始文件,通过给RequestManager注册一个RequestListener加载监听器,就可以拿到Glide加载的图片,然后进一步做什么样的处理,开发者可以自行决定。此时,Glide就演变成一个类似OkHttp一样的网络加载框架,只用来加载资源而已,例如:

package zhangphil.test;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.widget.ImageView;import com.bumptech.glide.Glide;import com.bumptech.glide.RequestBuilder;import com.bumptech.glide.RequestManager;import com.bumptech.glide.load.DataSource;import com.bumptech.glide.load.engine.GlideException;import com.bumptech.glide.request.RequestListener;import com.bumptech.glide.request.target.Target;import java.io.File;import java.io.FileInputStream;public class GlideActivity extends AppCompatActivity {    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_glide);        String url = "https://avatar.csdn.net/9/7/A/3_zhangphil.jpg";        ImageView image = findViewById(R.id.image);        RequestManager mRequestManager = Glide.with(this);        RequestBuilder mRequestBuilder = mRequestManager.downloadOnly();        mRequestBuilder.load(url);        mRequestBuilder.listener(new RequestListener() {            @Override            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {                return false;            }            @Override            public boolean onResourceReady(File resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {                try {                    FileInputStream fis = new FileInputStream(resource);                    Bitmap bmp = BitmapFactory.decodeStream(fis);                    image.setImageBitmap(bmp);                } catch (Exception e) {                    e.printStackTrace();                }                return false;            }        });        mRequestBuilder.preload();    }}

记得添加网络权限:

<uses-permission android:name="android.permission.INTERNET" />

在onResourceReady中拿到的

File resource

即是通过Glide加载出来的原始图片资源。

更多相关文章

  1. Android怎么找到最优适配资源
  2. 《新浪微博Android客户端开发完整视频 Touch Android版》
  3. Android应用开发提高系列(5)——Android动态加载(下)——加载已安装A
  4. Android(安卓)QQ皮肤制作 apk之间资源共享
  5. Android中资源的访问
  6. 【Android(安卓)Developers Training】 53. 打印HTML文档
  7. Android(安卓)Volley框架使用详解
  8. Android:ImageView
  9. android翻译应用、地图轨迹、视频广告、React Native知乎日报、

随机推荐

  1. Android 动态切换全屏和非全屏模式
  2. android Buton使用
  3. android:注册时的协议---》方法一:弹出框
  4. android 实现由下至上弹出并位于屏幕底部
  5. iOS vs. Android ICS: Hardware Accelera
  6. android获取屏幕宽高的两种方法
  7. Android studio实现按钮的点击事件
  8. edittext 被软键盘挡住
  9. android的布局属性中padding和margin的区
  10. android短信发送器源代码