将 NetworkImageView 更改为 ImageView?
change NetworkImageView to 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);
}
查看 Picasso。简单易用,提供缓存机制。
您可以使用 fresco 库来加载图像。
它有很多功能。
https://github.com/facebook/fresco
改变布局 从 <NetworkImageView
到 <ImageView
,然后从 public NetworkImageView imageView;
到 public ImageView imageView;
和从 imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero);
到 imageView = (ImageView) itemView.findViewById(R.id.imageViewHero);
希望对您有所帮助
不能直接在ImageView中设置图片。您必须在位图中转换该图像,然后设置
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));
我有一个 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);
}
查看 Picasso。简单易用,提供缓存机制。
您可以使用 fresco 库来加载图像。 它有很多功能。 https://github.com/facebook/fresco
改变布局 从 <NetworkImageView
到 <ImageView
,然后从 public NetworkImageView imageView;
到 public ImageView imageView;
和从 imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero);
到 imageView = (ImageView) itemView.findViewById(R.id.imageViewHero);
希望对您有所帮助
不能直接在ImageView中设置图片。您必须在位图中转换该图像,然后设置
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));