sqlite 存储图片

前端之家收集整理的这篇文章主要介绍了sqlite 存储图片前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、bitmap保存到sqlite 中 数据格式:

Java代码
  1. db.execsql("Createtableexpress(_idINTEGERPRIMARYKEYAUTOINCREMENT,express_novarchar(100),express_nameTEXT,express_imgBLOB);");

2、bitmap 变为 Blob

ContentValuesvalues=newContentValues();
  • Bitmap bmp=BitmapFactory.decodeResource(getResources(),R.drawable.erweima);
  • finalByteArrayOutputStreamos=newByteArrayOutputStream();
  • bmp.compress(Bitmap.CompressFormat.PNG,100,os);
  • values.put("express_img",os.toByteArray());
  • values.put("express_name","zf");
  • values.put("express_no",250); line-height:18px"> getContentResolver().insert("express",values);
  • 3、从sqlite中读取Bitmap

    byte[]in=cur.getBlob(cur.getColumnIndex("express_img"));
  • bmpout=BitmapFactory.decodeByteArray(in,0)">0,in.length);
  • 显示在ImageView上

    ImageViewimageView=(ImageView)view.findViewById(R.id.img);
  • ByteArrayInputStreamstream=newByteArrayInputStream(cur.getBlob(cur.getColumnIndex("express_img")));
  • imageView.setImageDrawable(Drawable.createFromStream(stream,"img"));
  • 总结:

    inputStream: 作为数据缓存,数据写如何供别的对象读取,其方法为read();

    outputStream:作为数据缓存,将来向别的对象写内容!其方法write();

    byte[]in=cur.getBlob(cur.getColumnIndex(MyUser.User.BITMAP_VALUES));

    //这样也可以对数据进行初始化,byte是基本类型,不需要之前进行长度定义。

    猜你在找的Sqlite相关文章