我在图像视图中显示个人资料照片,该图像与具有Volley Post请求的网站中的用户详细信息一起显示。我脱机预览功能工作在SQLite数据库中保存base64 encdoed图像VS将图像保存在手机/存储卡上
(所有搜索历史,将显示配置文件数据与轮廓图像脱机工作)我不知道,什么是做的最好的方法:通过保存编码
- SQLite数据库中的字符串和需要时拉和解码?
- 通过将解码图像保存在手机或SD卡存储器上?
如果有人也分享两种情况下的优点和缺点(如表现和资源问题),那将会很棒。
我在图像视图中显示个人资料照片,该图像与具有Volley Post请求的网站中的用户详细信息一起显示。我脱机预览功能工作在SQLite数据库中保存base64 encdoed图像VS将图像保存在手机/存储卡上
(所有搜索历史,将显示配置文件数据与轮廓图像脱机工作)我不知道,什么是做的最好的方法:通过保存编码
如果有人也分享两种情况下的优点和缺点(如表现和资源问题),那将会很棒。
我认为这是比较容易的图像存储在文件系统中,在应用程序的专用区域,如果你需要一些相关的数据的图像,只是存储的文件名作为数据库中的字段。
处理BLOB字段需要大量的样板代码,我不认为这样做有很多好处。
谢谢@Juan我会将文件存储在手机内存中,而不是数据库。 –
Picasso是管理您的方案的最佳方法。
首先,您不必使用“排空发布”请求获取图像详细信息。你只需要传递给毕加索的网址,它会管理你,你。
其次,由于毕加索已拥有自己的缓存功能,因此您也不需要在本地为缓存功能存储图像数据。
这里是你如何可以毕加索库添加到您的项目
首先,通过摇篮下载最新的JAR或抢:
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");
}
});
}
});
这是完整的implementation
感谢您的想法,但我不想涉及另一个图书馆。 :) –
检查此https:// stackoverflow .com/questions/13827412/save-image-in-sqlite-database-from-android –