1. 程式人生 > >android 使用Glide載入圖片閃動問題

android 使用Glide載入圖片閃動問題

1、RecyclerView 有自己預設的動畫,去除預設動畫

((SimpleItemAnimator) recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
並且設定對應的adapter,設定
mRecyclerAdapter.setHasStableIds(true);
2、Glide同步載入圖片的時候,給對應的imageview設定一個Tag
if (!album.getCoverUrlSmall().equals(viewHolder.pic.getTag(R.id.aiItemPlaylistAlbum_iv_albumPic
))) { GlideUtil.setRoundImage(mContext, viewHolder.pic, album.getCoverUrlSmall()); viewHolder.pic.setTag(R.id.aiItemPlaylistAlbum_iv_albumPic, album.getCoverUrlSmall()); } else { }
3、Glide去除其本身自帶的動畫
GlideApp.with(context).load(resId).dontAnimate().centerCrop()
.apply(RequestOptions.bitmapTransform
(new GlideRoundTransformation(radius))).into(imageView);
4、Gldie非同步載入圖片的時候,recycleView滑動太快,會使圖片發生錯亂,此時最好設定兩個Tag
viewHolder.mIvPic.setTag(R.id.aiItemPlaylistAlbum_iv_customPic, mIAiMediaEntry.getEntryUniqueId());
mIAiMediaEntry.getPic(IAiMediaEntry.PIC_SMALL, new IAiMediaEntry.IPictureCallback() {
    @Override
public void onGetPictureSuccess(IAiMediaEntry entry, String imageUrl) { if (entry.getEntryUniqueId().equals(viewHolder.mIvPic.getTag(R.id.aiItemPlaylistAlbum_iv_customPic))) { if (!TextUtils.equals((String) (viewHolder.mIvPic.getTag(R.id.item_pic_view_tag)), imageUrl)) { if (!TextUtils.isEmpty(imageUrl)) { GlideUtil.setRoundImage(mContext, viewHolder.mIvPic, imageUrl); } else { GlideUtil.setRoundImage(mContext, viewHolder.mIvPic, R.drawable.label_demand_default, 7); } viewHolder.mIvPic.setTag(R.id.item_pic_view_tag, imageUrl); } } } @Override public void onGetPictureError(IAiMediaEntry entry, String errMsg) { if (entry.getEntryUniqueId().equals(viewHolder.mIvPic.getTag(R.id.aiItemPlaylistAlbum_iv_customPic))) { GlideUtil.setRoundImage(mContext, viewHolder.mIvPic, R.drawable.label_demand_default, 7); } } });
5、在RecyclerView 停止滑動的時候重新整理列表,載入圖片
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        if(newState == SCROLL_STATE_IDLE){
            mRecyclerAdapter.notifyDataSetChanged();
        }
    }
});


相關推薦

android 使用Glide載入圖片閃動問題

1、RecyclerView 有自己預設的動畫,去除預設動畫 ((SimpleItemAnimator) recyclerView.getItemAnimator()).setSupportsChangeAnimations(false); 並且設定對應的adapter,

Android Glide 載入圖片

0.借鑑文章地址:http://blog.csdn.net/zivensonice/article/details/51835802 和 http://www.cnblogs.com/zhaoyanjun/p/5404162.html 1.導包:compile 'com.github.bumptech.gl

Android Glide載入圖片時轉換為圓形、圓角、毛玻璃等圖片效果

Android Glide載入圖片時轉換為圓形、圓角、毛玻璃等圖片效果 附錄1簡單介紹了Android開源的圖片載入框架。在實際的開發中,雖然Glide解決了快速載入圖片的問題,但還有一個問題懸而未決:比如使用者的頭像,往往使用者的頭像是從伺服器端讀出的一個普通矩形圖片

Android Glide載入圖片自動適應寬度

因為android的imgeview的scaletype都沒有可以在不改變原圖片比例的情況下自適應寬度的種類。所以用glide載入圖片的時候想要自適應寬度需要自己做點處理。 主要的思路就是在獲取到圖片之後,獲得圖片的寬dw和高dh,然後根據imageview的

android glide載入base64圖片

1,直接上程式碼 public static boolean isBase64Img(String imgurl){ if(!TextUtils.isEmpty(imgurl)&&(imgurl.startsWith("data:image/png;

Android框架之路——Glide載入圖片(結合RecyclerView、CardView)

Android框架之路——Glide載入圖片 一、簡介: 在泰國舉行的谷歌開發者論壇上,谷歌為我們介紹了一個名叫 Glide 的圖片載入庫,作者是bumptech。這個庫被廣泛的運用在google的開源專案中,包括2014年google I/O大會

Android自定義圓角矩形ImageView,支援Glide載入圖片及顏色填充

前言:  之前用到圓角的情況大都是自定義一個shape背景drawable及用到v7包下的CardView包裹View實現圓角矩形效果,還有就是在使用者圓形頭像的時候需要使用到圓角矩形(圓形可以看做是特殊的圓角矩形),諸如Button,Editext,Text

android Glide圓角圖片

Glide設定圓角圖片 Glide有一個版本可以直接設定圓角圖片 需要匯入 這個版本可以直接設定圓角圖片 不需要什麼操作 compile 'jp.wasabeef:glide-transformations:2.0.1' 載入圖片時 //thumbnail是壓縮

新版Glide載入圖片時,佔位符placeholder失效的解決方案

我使用的是當前最新的Glide4.8.0的版本,想要設定在載入圖片過程中顯示預設圖片的功能,網上查到的設定placeholder,但實際發現這個屬性爆紅無法使用。 解決方案: Glide .with(this) .load(PHOTO_URL) .apply(new Request

演化理解 Android 非同步載入圖片

                在學習"Android非同步載入影象小結"這篇文章時, 發現有些地方沒寫清楚,我就根據我的理解,把這篇文章的程式碼重寫整理了一遍,下面就是我的整理。  下面測試使用的layout檔案:  簡單來說就是 LinearLayout 佈局,其下放了5個ImageView。     &

Glide載入圖片並儲存到本地返回file,bitmap

不廢話,直接上程式碼 [java] view plain copy print?import android.content.Context;  import android.content.Intent;  import android.graphics.Bitmap;  import androi

Glide載入圖片並儲存到本地相簿

不廢話,直接上程式碼 import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; impor

使用Glide載入圖片

載入網路圖片 1、匯入Glide庫和V4包,因為Glide依賴於V4 ImageView targetImageView = (ImageView) findViewById(R.id.im

Glide 載入圖片儲存至本地,載入回撥監聽

Glide 載入圖片儲存至本地指定路徑/** * Glide 載入圖片儲存到本地 * * imgUrl 圖片地址 * imgName 圖片名稱 */ Glide.with(context).load(im

RecycleView 中使用glide載入圖片如何防止載入錯亂

RecycleView和ListView類似,當滑動過程中利用子執行緒載入圖片,由於其內部viewHolder的複用機制,會導致載入圖片錯亂問題,ListView可以通過設定tag解決,但是如果用glide載入圖片,由於Glide內部已經使用了setTag的方式, 如果再使用ImageV

列表中Glide載入圖片大小顯示不正常問題

Glide載入圖片時大時小 前言:最近在專案中發現了一個奇怪的現象,在列表的item佈局中使用了glide來載入網路圖片,奇怪的現象出現了…同一張圖,同一份資料,有的時候顯示正常,有的時候該圖片顯示出來會稍微小一圈… 解決辦法:百思不得其解,找了很多資料,以為對recyclervie

GLide載入圖片還能這樣幹——基於Glide4.0完美封裝

一個基於GLide載入圖片的封裝開源框架。可以監聽載入圖片時的進度 ,可以設定圖片的圓角、邊框。可載入成圓形。 該庫是基於Glide V4.0設計的,實現如下特性: 1、通過提供的屬性可以設定圖片的圓角、邊框。 2、可以設定點選觸控圖片時的顏色、透

Glide載入圖片,GONE無法隱藏

Glide載入圖片的過程中使用了動畫,ImageView設定動畫之後無法隱藏,所以,使用Glide載入圖片dontAnimate()去掉動畫 Glide.with(DealerDynamicActivity.this).load(file)

Android WebView載入圖片顯示過大的處理

Webview載入圖片時,經常會遇到圖片顯示不符合預期的問題。下面給出解決辦法:利用Jsoup解析html指定img標籤的寬高屬性來解決。小提示:("width", "100%")——>解決了圖片過大,超出螢幕顯示的問題,但是此時會帶來一個新的bug,就是當圖片小於螢幕

Recyclerview 列表中 使用Glide載入圖片,下拉 或者上拉 載入資料,圖片閃 爍 ,

剛開始以為是 Recyclerview的快取複用問題,隨找了幾個方法試試,在Recyclerview adapter裡邊 設定tag,,然並卵; 禁止 glide 預設載入動畫,沒卵用,並沒有解決,