我对Android的编程很新,我有一个问题 - 我正在创建一个存储“有趣”图像的应用程序,并允许用户查看所有这些,评价它们(至少我想这样做; ))。我试图创建一个非常简单的数据库,将图像存储为BLOB,但论坛上有人告诉我这是一个坏主意 - 所以我决定将图像存储在SD上(这段代码主要来自Stack):
private void savePicToSD(){
Toast.makeText(getActivity(),"Saving...",Toast.LENGTH_SHORT).show();
//getting BitMap from ImageView
Bitmap imageToSave=((BitmapDrawable)preview.getDrawable()).getBitmap();
// getting env var representing path
String root= Environment.getExternalStorageDirectory().toString();
Toast.makeText(getActivity(),root,Toast.LENGTH_LONG).show();
File dir=new File(root+DIR_NAME_);
dir.mkdirs();
String fileNam="Image-"+FILE_COUNTER_+".jpg";
FILE_COUNTER_=FILE_COUNTER_.add(BigInteger.valueOf(1));
File fileSav=new File(dir,fileNam);
//I don't use try-with-resources because of API lvl
FileOutputStream out=null;
try{
out=new FileOutputStream(fileSav);
//saving compressed file ot the dir
imageToSave.compress(Bitmap.CompressFormat.JPEG,90,out);
out.flush();
out.close();
}catch(Exception ex) {
ex.printStackTrace();
Toast.makeText(getActivity(), "Error during saving.", Toast.LENGTH_SHORT).show();
}
Toast.makeText(getActivity(),"Image saved.",Toast.LENGTH_LONG).show();
}
制作之后我现在不知道如何存储这个“参考”以及如何实现“从数据库中获取数据” - 我正在考虑在DB字符串中存储(与某些其他数据相关的特定照片)连接图像的路径以及稍后从DB读取数据时,还要读取图像 - 但如何有效地执行此操作? (我知道从DB获取数据必须以线程(AsyncTask?))来完成?
答案 0 :(得分:1)
我认为您可以做的最好的事情是将图像的路径存储在BDD或相对路径中然后访问它
答案 1 :(得分:1)
将imagePath / fileName存储在本地数据库中,同时将图像保存在文件系统(SD卡)中,然后当您想要返回该图像时,只需使用存储在中的imagePath / fileName从文件系统中获取该图像。数据库中。
我希望您知道如何在SD卡中创建文件和存储。