我正在图像视图中显示个人资料照片,该照片与来自具有Volley Post请求的网站的用户详细信息一起被拉出。我正在处理离线预览功能(将显示所有搜索历史记录的配置文件图像离线的配置文件数据)
我不确定,最好的方法是什么:
如果有人同时分享这两种情况的利弊(如性能和资源问题),那就太棒了。
答案 0 :(得分:0)
答案 1 :(得分:0)
我认为将图像存储在文件系统,应用程序的私有区域中更容易,如果需要与某些数据相关的图像,只需将文件名存储为数据库中的字段即可。
处理BLOB字段需要大量的样板代码,我不认为这样做有很多好处。
答案 2 :(得分:0)
Picasso是管理您的方案的最佳方式。
首先,您不必使用Volley Post请求来获取图像详细信息。你只需要将网址传递给毕加索,它就会为你管理它。
其次,您也不需要在本地存储图像数据以用于缓存功能,因为Picasso已经拥有自己的缓存功能。
以下是如何将Picasso库添加到项目中
首先,下载最新的JAR或通过Gradle抓取:
compile 'com.squareup.picasso:picasso:2.5.2'
然后获取图像并将图像添加到imageView
Picasso.with(context)
.load(imageUrl)
.networkPolicy(NetworkPolicy.OFFLINE)
.
.into(imageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
//Try again online if cache failed
Picasso.with(context)
.load(getImageUrl())
.error(R.drawable.header)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
Log.v("Picasso","Could not fetch image");
}
});
}
});