Vek*_*r88 6 android android-volley networkimageview
我NetworkImageView 用来显示从远程URL下载的一些封面,我成功地设法缓存并显示它们,但我想让用户设置自己的封面图像,如果他们想要的话.我尝试使用setImageUrl带有Uri.fromFile(mCoverFile).toString()as参数的方法,但它不起作用.由于它是远程和本地图像的混合,我无法切换到常规ImageViews,所以我想知道是否有任何方法可以启用加载本地图像.
我当然知道的ImageView的setImageBitmap方法,但NetworkImageView会自动调整创建Bitmap,也防止View回收的GridViewS和ListView秒.
更新: njzk2的答案奏效了.要根据您的View大小自动调整位图,只需ImageRequest.doParse从Volley的源代码中复制该方法.
NetworkImageView使用ImageLoader,反过来使用ImageCache.
如果ImageCache您使用相同的键机制,则可以为图像提供自定义:
return new StringBuilder(url.length() + 12).append("#W").append(maxWidth)
.append("#H").append(maxHeight).append(url).toString();
Run Code Online (Sandbox Code Playgroud)
url 在实际请求完成之前未经过测试,所以这里没有问题.
通常,您的"缓存"可能如下所示:
public class MyCache implements ImageLoader.ImageCache {
@Override
public Bitmap getBitmap(String key) {
if (key.contains("file://")) {
return BitmapFactory.decodeFile(key.substring(key.indexOf("file://") + 7));
} else {
// Here you can add an actual cache
return null;
}
}
@Override
public void putBitmap(String key, Bitmap bitmap) {
// Here you can add an actual cache
}
}
Run Code Online (Sandbox Code Playgroud)
你使用它像:
imageView.setImageUrl(Uri.fromFile(mCoverFile).toString(), new MyCache());
Run Code Online (Sandbox Code Playgroud)
(这还没有经过实际测试,可能会有一些调整)
| 归档时间: |
|
| 查看次数: |
12259 次 |
| 最近记录: |