1、bitmap保存到SQLite 中 数据格式:
db.execSQL("Create table express ( _id INTEGER PRIMARY KEY AUTOINCREMENT,express_no varchar(100),express_name TEXT,express_img BLOB );");
2、bitmap 变为 Blob
ContentValues values = new ContentValues();
final ByteArrayOutputStream os = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, os);
values.put("express_img", os.toByteArray());
values.put("express_name","zf");
values.put("express_no","zf");
getContentResolver().insert("express", values);
3、从SQLite中读取Bitmap
byte[] in=cur.getBlob(cur.getColumnIndex("express_img"));
bmpout=BitmapFactory.decodeByteArray(in,0,in.length);
4、显示在ImageView上
ImageView imageView = (ImageView) view.findViewById(R.id.img);
ByteArrayInputStream stream = new ByteArrayInputStream(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));
本文出自 “晚生后学” 博客,请务必保留此出处http://xiaoshudi.blog.51cto.com/8634670/1547305
原文地址:http://xiaoshudi.blog.51cto.com/8634670/1547305