我有一个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);
}发布于 2017-02-21 11:30:53
更改布局,从<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));发布于 2017-02-21 11:16:21
您可以使用壁画库加载图像。它有很多特征。https://github.com/facebook/fresco
发布于 2017-02-21 11:11:33
看看毕加索。易于使用,并提供缓存机制。
https://stackoverflow.com/questions/42365642
复制相似问题