Android 開發圖片加載(二)Glide的簡單使用

上節提到了 Android 開發當前主流的四種圖片加載框架,並介紹了一下 Picasso 的簡單使用, Picasso 雖然強大,但是存在一定的不足,比如不能加載 Gif 圖片,這嚴重影響了 App 的炫酷效果,下面介紹一下一個更強大、可以加載 Gif 圖片的框架 —— Glide。廢話不多說,進入主題:

一、在 Module 的 build.gradle 裏面添加依賴:

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

二、在程序中簡單調用:

Glide.with(this) // context 文本信息
        .load(url) // 和 Picasso 一樣,圖片的 uri,可以放網絡鏈接,也可以放本地資源
        .into(imageView);   // ImageView 控件

三、和 Picasso 一樣可以設置加載中和加載出錯的圖片:

Glide.with(this) // context 文本信息
        .load(url) // 和 Picasso 一樣,圖片的 uri,可以放網絡鏈接,也可以放本地資源
        .placeholder(R.drawable.wait)   // 加載中
        .error(R.drawable.error)    // 加載出錯
        .into(imageView);   // ImageView 控件

四、查看圖片加載出來是否變形,如果有,加上 dontAnimate() ,如:

Glide.with(this) // context 文本信息
        .load(gifUrl) // 和 Picasso 一樣,圖片的 uri,可以放網絡鏈接,也可以放本地資源
        .placeholder(R.drawable.wait)   // 加載中
        .error(R.drawable.error)    // 加載出錯
        .dontAnimate() // 防止圖片被拉伸
        .into(imageView);   // ImageView 控件

五、重點來了,加載 Gif 動圖,Glide4.9 新版本和以往的方式不同:

RequestOptions options = new RequestOptions()
        .centerCrop()
        .placeholder(R.drawable.wait)
        .error(R.drawable.error)
        .priority(Priority.HIGH)        // 設置優先級
        .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC); // 設置緩存模式 ,自動

Glide.with(this)
        .load(gifUrl)
        .listener(new RequestListener<Drawable>() {
            @Override
            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                return false;
            }

            @Override
            public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                return false;
            }
        }).apply(options)
        .into(imageView);

好了,本節就到這裏。如果文章對你有用,請點個贊!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章