[英]Volley's NetworkImageView - setImageBitmap method doesn't work
[英]Recyclerview NetworkImageView (volley) doesn't show up
我使用RecyclerView
和volley的NetworkImageView
在下載后渲染圖像。 視圖由作者圖像,一些文本字段和圖片組成。 以下是填充視圖的代碼段:
// vh is the viewholder
vh.picture.setDefaultImageResId(R.drawable.default_image);
vh.picture.setImageUrl(post.getImageUrl(), mImageLoader);
我面臨的問題是滾動時,說出20張圖像,大多數是〜18出現。 我從日志中看到所有圖像都已下載並位於緩存中,但有些圖像未呈現。 甚至不會為這些視圖顯示默認圖像。 如果視圖無效(再次向上和向下滾動),則會顯示圖像。
有趣的是,對於沒有顯示圖片的視圖,即使我可以在其上方的帖子中看到同一作者圖片,也不會顯示作者圖片。 就像整個視圖顯示圖像一樣有問題。
下載圖像后,有沒有辦法在NetworkImageView
手動調用invalidate()
或postInvalidate()
? 還是其他任何想法?
這也是在這里問的。 我終於通過不使用NetworkImageView解決了這個問題。 我開始使用regualar ImageView,仍然通過自定義圖像請求和onResponse()應用圖像在視圖上獲取圖像。 這看起來效果很好。
public void getImage(String url, final ImageView v) {
if (TextUtils.isEmpty(url)) return; // don't fetch a null url
ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
v.setImageBitmap(response);
}
}, 0, 0, null, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error- " + error.getMessage());
}
});
mRequestQueue.addToRequestQueue(imageRequest);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.