android开发之数据库存取图片
时间: 2023-08-17 08:13:58 浏览: 103
新版Android开发教程+笔记十二--文件存取、数据库编程
在 Android 开发中,将图片存储在数据库中并不是一个常见的做法,一般情况下我们会将图片存储在设备的文件系统中,然后在数据库中存储图片的文件路径或者唯一标识符。
如果你非要将图片存储在数据库中,可以将图片转换成字节数组,然后将字节数组存储在数据库的 BLOB 类型的字段中。具体做法如下:
1. 将图片转换成字节数组:
```
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.image);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
```
2. 将字节数组存储在数据库中:
```
ContentValues values = new ContentValues();
values.put("image", byteArray);
db.insert("my_table", null, values);
```
3. 从数据库中读取图片:
```
Cursor cursor = db.query("my_table", new String[]{"image"}, null, null, null, null, null);
if (cursor.moveToFirst()) {
byte[] byteArray = cursor.getBlob(cursor.getColumnIndex("image"));
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
imageView.setImageBitmap(bitmap);
}
```
需要注意的是,将图片存储在数据库中可能会导致数据库变得很大,而且读写速度也比较慢,因此建议还是将图片存储在文件系统中。
阅读全文