Android 保存图片到Sqlite 数据库并从数据库中获得图片

SQlite数据库中可以直接保存图片,有两点说明:

1.建数据库表时,保存图片的表字段类型为BLOB。

2.图片类型为Bitmap

保存到数据库中的代码如下:

		    final ByteArrayOutputStream os = new ByteArrayOutputStream(); 
		    bmp.compress(Bitmap.CompressFormat.PNG, 100, os);  
		    cv.put("pic", os.toByteArray());

代码说明:

第一行,构造一个字节输出流对象,用于保存图片数据

第二行中的bmp为要保存到数据库中图片,在此图片必须为Bitmap类型

第三行,cv为ContentValues对象,"pic"为数据库表中用于保存图片的字段名称

用sqlite工具就可以在数据库直接查看保存到数据库表中的图片

从数据库中读取图片代码如下:

byte[] data = cursor.getBlob(cursor.getColumnIndex("pic"));
BitmapFactory.Options opts = new BitmapFactory.Options();  
BitmapFactory.decodeByteArray(data, 0, data.length, opts)

代码说明:


第一行,从游标cursor中获得图片数据,cursor是游标Cursor对象,"pic"为数据库表中用于保存图片的字段名称
第二行第三行,利用得到的字节数组构造Bitmap对象。


最后说明:通过上面的几行代码就可以实现图片在数据库中的保存、查询,但有时候在构造Bitmap对象时会出现内存溢出异常,这将在下一篇中处理


  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值