图像未存储在缓存中
Images are not stored in the cache
我有这个方法,一切正常,但图像总是从服务器获取,而不是从缓存中加载!发生了什么事?
public static void makeImageRequest(String Unique_ID, final View parentView, final int id) {
String url = FILE_UPLOAD_FOLDER + Unique_ID + ".png";
final int defaultImageResId = R.drawable.user;
// Retrieves an image specified by the URL, displays it in the UI.
ImageCacheManager.getInstance().getImage(url, new ImageListener() {
@Override
public void onErrorResponse(VolleyError error) {
ImageView imageView = (ImageView) parentView.findViewById(id);
imageView.setImageResource(defaultImageResId);
}
@Override
public void onResponse(ImageContainer response, boolean isImmediate) {
if (response.getBitmap() != null) {
ImageView imageView = (ImageView) parentView.findViewById(id);
imageView.setImageBitmap(response.getBitmap());
} else if (defaultImageResId != 0) {
ImageView imageView = (ImageView) parentView.findViewById(id);
imageView.setImageResource(defaultImageResId);
}
}
});
}
只需使用 Picasso
而不是 ImageCacheManager
。 Picasso
是一个强大的图像下载和缓存库 Android。图像为 Android 应用程序添加了急需的上下文和视觉效果。 Picasso 允许在您的应用程序中轻松加载图像——通常只需一行代码!
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
这里也可以管理图片下载成功还是失败:
Picasso.with(context)
.load("http://i.imgur.com/DvpvklR.png")
.into(imageView, new Callback() {
@Override
public void onSuccess() {
// your code
}
@Override
public void onError() {
// your code
}
});
您只应在 gradle 中添加此行:
compile 'com.squareup.picasso:picasso:2.5.2'
希望对您有所帮助!
我有这个方法,一切正常,但图像总是从服务器获取,而不是从缓存中加载!发生了什么事?
public static void makeImageRequest(String Unique_ID, final View parentView, final int id) {
String url = FILE_UPLOAD_FOLDER + Unique_ID + ".png";
final int defaultImageResId = R.drawable.user;
// Retrieves an image specified by the URL, displays it in the UI.
ImageCacheManager.getInstance().getImage(url, new ImageListener() {
@Override
public void onErrorResponse(VolleyError error) {
ImageView imageView = (ImageView) parentView.findViewById(id);
imageView.setImageResource(defaultImageResId);
}
@Override
public void onResponse(ImageContainer response, boolean isImmediate) {
if (response.getBitmap() != null) {
ImageView imageView = (ImageView) parentView.findViewById(id);
imageView.setImageBitmap(response.getBitmap());
} else if (defaultImageResId != 0) {
ImageView imageView = (ImageView) parentView.findViewById(id);
imageView.setImageResource(defaultImageResId);
}
}
});
}
只需使用 Picasso
而不是 ImageCacheManager
。 Picasso
是一个强大的图像下载和缓存库 Android。图像为 Android 应用程序添加了急需的上下文和视觉效果。 Picasso 允许在您的应用程序中轻松加载图像——通常只需一行代码!
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
这里也可以管理图片下载成功还是失败:
Picasso.with(context)
.load("http://i.imgur.com/DvpvklR.png")
.into(imageView, new Callback() {
@Override
public void onSuccess() {
// your code
}
@Override
public void onError() {
// your code
}
});
您只应在 gradle 中添加此行:
compile 'com.squareup.picasso:picasso:2.5.2'
希望对您有所帮助!