android存储照片sqlite
时间: 2023-08-11 15:41:05 浏览: 143
android 图片在sqlite里的存取操作
Android中可以将图片数据存储在SQLite数据库中,一般来说,我们需要将图片数据转化为二进制数据,再将其插入到SQLite数据库中。
下面是一个简单的示例代码,演示了如何将图片数据存储在SQLite数据库中:
```java
// 将图片转化为二进制数据
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] imageData = stream.toByteArray();
// 插入数据到SQLite数据库中
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "image1");
values.put("data", imageData);
db.insert("image_table", null, values);
```
在上述代码中,我们首先将图片数据转化为二进制数据,并将其存储在一个字节数组中。然后,我们创建一个ContentValues对象,将图片数据和图片名称插入到其中,并将其插入到SQLite数据库中。
当我们需要读取存储在SQLite数据库中的图片数据时,我们可以使用以下代码:
```java
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT data FROM image_table WHERE name=?", new String[]{"image1"});
if(cursor.moveToFirst()) {
byte[] imageData = cursor.getBlob(0);
Bitmap bitmap = BitmapFactory.decodeByteArray(imageData, 0, imageData.length);
imageView.setImageBitmap(bitmap);
}
```
在上述代码中,我们使用SELECT语句查询了存储在SQLite数据库中的图片数据,并将其转化为Bitmap对象,最后显示在ImageView中。
阅读全文