1

Я использую RecyclerView и volley's NetworkImageView для рендеринга изображений после их загрузки. Представление состоит из изображения автора, некоторых текстовых полей и изображения. Ниже приведен фрагмент кода, чтобы заполнить вид:Recyclerview NetworkImageView (volley) не отображается

// vh is the viewholder  
vh.picture.setDefaultImageResId(R.drawable.default_image); 
vh.picture.setImageUrl(post.getImageUrl(), mImageLoader); 

Проблема я столкнулся в при прокрутке, из скажем, 20 изображений, в основном ~ 18 показать. Из журналов видно, что все изображения загружаются и находятся в кеше, но некоторые из них не отображаются. Даже изображение по умолчанию для этих представлений не отображается. Если представление недействительно (прокрутка вверх и вниз снова), изображения отображаются.

Забавно, что для изображений, на которых изображение не отображается, даже авторский рисунок не отображается, даже если я вижу один и тот же авторский снимок в столбе чуть выше него. Как будто весь вид имеет проблему с отображением изображений.

Можно ли позвонить invalidate() или postInvalidate() по факсу NetworkImageView после загрузки изображения? Или любые другие идеи?

ответ

0

Это предложение было также задано here. Я, наконец, обошел эту проблему, вообще не используя 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); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^