android sqlite 存图片,Android sqlite 存取图片
时间: 2023-09-23 14:12:12 浏览: 183
Android数据库SD卡创建和图片存取操作
Android SQLite可以存储图片,这里提供一种简单的方法。
首先,将图片转换为字节数组,然后将其存储为BLOB类型的数据。以下是一个示例方法,将位图转换为字节数组:
```java
public static byte[] getBytesFromBitmap(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
return stream.toByteArray();
}
```
接下来,将字节数组存储到SQLite数据库中。以下是一个示例方法,将字节数组存储到SQLite数据库中:
```java
public void insertImage(byte[] imageBytes) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("image", imageBytes);
db.insert("images", null, values);
db.close();
}
```
最后,从SQLite数据库中检索图像并将其转换回位图。以下是一个示例方法,从SQLite数据库中检索图像并将其转换回位图:
```java
public Bitmap getImage(int id) {
SQLiteDatabase db = this.getReadableDatabase();
String[] columns = new String[] { "image" };
String whereClause = "id=?";
String[] whereArgs = new String[] { String.valueOf(id) };
Cursor cursor = db.query("images", columns, whereClause, whereArgs, null, null, null);
if (cursor.moveToFirst()) {
byte[] imageBytes = cursor.getBlob(0);
cursor.close();
db.close();
return BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
}
cursor.close();
db.close();
return null;
}
```
这些方法应该能够帮助你在Android SQLite中存储和检索图像。
阅读全文