我注意到在数据库中使用Blob不是显示图像的好方法。 我的图片大小不到100KB。 我怎样才能在sqlite数据库中解决它们? 我应该把它们放在哪里?
这是我的db:
这是我的数据库类:
public class database extends SQLiteOpenHelper {
public final String path = "data/data/com.example.booktest/databases/";
public final String Name = "database";
public SQLiteDatabase mydb;
private final Context mycontext;
public database(Context context) {
super(context, "database", null, 1);
mycontext = context;
}
@Override
public void onCreate(SQLiteDatabase arg0) {...}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {...}
public void useable() {
boolean checkdb = checkdb();
if (checkdb) {
} else {
this.getReadableDatabase();
try {
copydatabase();
}
catch (IOException e) {}
}
}
public void open() {...}
@Override
public void close() {... }
public boolean checkdb() {...}
public void copydatabase() throws IOException {...}
答案 0 :(得分:0)
只需下载SD卡中的图像,然后将目录保存在SQLite
表中。获取路径并在需要的地方检索图像。
String path = imageFile.getAbsolutePath();
Bitmap bitmap = BitmapFactory.decodeFile(path);
imgView.setImageBitmap(bitmap);
答案 1 :(得分:0)
作为一种典型的方式,开发人员通常会将图像保存在应用程序自己的私人目录中。
/data/data/app_id/files
因此,您也应该遵循这种方式。因此,首先为这些图像创建一个专用目录,称为images
并将所有图像存储在那里。
在数据库方面,您只需保存其名称,例如photo1.jpg
。
备注:强>
要获取对您的私人目录的引用,请使用您的活动的getFilesDir()
方法。
要获取图像的绝对地址,您可能需要使用以下代码:
File privateDir = getFilesDir();
File imagesDir = new File(privateDir, "images");
File image = new File(imagesDir, "photo1.jpg");