2017-02-21 48 views
0

У меня есть NetworkImageView, но я хочу использовать вместо ImageView для кэширования изображений, а не для его получения из сети все время.изменить NetworkImageView на ImageView?

Есть идеи, как изменить его?

class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 
     //Views 
     public NetworkImageView imageView; 
     public TextView textViewName; 
     public TextView textViewPublisher; 

     //Initializing Views 
     public ViewHolder(View itemView) { 
      super(itemView); 
      imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero); 
      textViewName = (TextView) itemView.findViewById(R.id.textViewName); 
      textViewPublisher = (TextView) itemView.findViewById(R.id.textViewPublisher); 
      textViewName.setClickable(true); 
      textViewName.setOnClickListener(this); 
     } 
+1

Вы можете использовать Glide, UniversalImageLoder библиотека для изображения Загрузка. –

ответ

1

Изменение макета Из <NetworkImageView с <ImageView, а затем изменить viewholder от public NetworkImageView imageView; с public ImageView imageView; и от imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero); с imageView = (ImageView) itemView.findViewById(R.id.imageViewHero);

надеюсь, что это поможет вам

вы не можете установить изображение в ImageView непосредственно. вы должны преобразовать это изображение в Bitmap, а затем установить

public static Bitmap getBitmapFromURL(String src) { 
    try { 
     Log.e("src",src); 
     URL url = new URL(src); 
     HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
     connection.setDoInput(true); 
     connection.connect(); 
     InputStream input = connection.getInputStream(); 
     Bitmap myBitmap = BitmapFactory.decodeStream(input); 
     Log.e("Bitmap","returned"); 
     return myBitmap; 
    } catch (IOException e) { 
     e.printStackTrace(); 
     Log.e("Exception",e.getMessage()); 
     return null; 
    } 
} 

, а затем установить в ImageView:

imageView.setImageBitmap(getBitmapFromURL(url)); 
+0

это дает мне ошибку: не удается найти метод символа setImageUrl (String, ImageLoader) –

+0

@RickJoe проверить мой обновленный ответ –

1

Отъезд Picasso. Прост в использовании и обеспечивает механизм кеширования.

2

Вы можете использовать fresco lib для загрузки изображений. У этого есть много особенностей. https://github.com/facebook/fresco

+0

Да, это хорошая библиотека. Я использовал его. –