android sqlite 存图片,Android sqlite 存取图片
时间: 2023-09-23 11:11:15 浏览: 159
在 Android SQLite 中存储图片,可以将图片转换为字节数组进行存储。以下是一个简单的示例:
1. 创建一个表来存储图片:
```sql
CREATE TABLE images (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
data BLOB
);
```
2. 将图片转换为字节数组并插入到数据库中:
```java
public void insertImage(String name, Bitmap bitmap) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
values.put("data", byteArray);
db.insert("images", null, values);
db.close();
}
```
3. 从数据库中读取图片并转换为 Bitmap:
```java
public Bitmap getImage(String name) {
SQLiteDatabase db = getReadableDatabase();
String[] columns = {"data"};
String selection = "name=?";
String[] selectionArgs = {name};
Cursor cursor = db.query("images", columns, selection, selectionArgs, null, null, null);
if (cursor.moveToFirst()) {
byte[] byteArray = cursor.getBlob(0);
cursor.close();
db.close();
return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
}
cursor.close();
db.close();
return null;
}
```
注意,存储图片时需要将其压缩为 PNG 格式,以避免损失。此外,存储和读取图片时需要关闭数据库连接以释放资源。
阅读全文