Android sqlite数据库中的图像寻址
我注意到在数据库中使用Blob并不是显示图像的好方法。 我的图像大小小于100KB。 我如何在sqlite数据库中处理它们? 我应该把它们放在哪里 这是我的数据库: 这是我的数据库类:Android sqlite数据库中的图像寻址,android,sqlite,Android,Sqlite,我注意到在数据库中使用Blob并不是显示图像的好方法。 我的图像大小小于100KB。 我如何在sqlite数据库中处理它们? 我应该把它们放在哪里 这是我的数据库: 这是我的数据库类: public class database extends SQLiteOpenHelper { public final String path = "data/data/com.example.booktest/databases/"; public final String Nam
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 {...}
只需下载sd卡中的图像并将目录保存在
SQLite
表中即可。获取路径并在需要时检索图像
String path = imageFile.getAbsolutePath();
Bitmap bitmap = BitmapFactory.decodeFile(path);
imgView.setImageBitmap(bitmap);
作为一种典型的方式,开发人员通常将图像保存在应用程序自己的私有目录中
/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");