1、bitmap保存到sqlite 中 数据格式:
- 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是基本类型,不需要之前进行长度定义。