关于SQLite 数据库 读写图片的问题


数据库中图片的字段名为image ,数据类型 是blob

--------------------------------以下是存入------------------

ByteArrayOutputStream baos = new ByteArrayOutputStream();

--------------------------第一种图片数据来源-----------------------------------------------------------
//如果图片数据来源是ImageView组件中的图片,可以用以下方法,mImageview_save是个ImageView的对象
//PNG是存入的图片格式,100是图片质量(0-100)
((BitmapDrawable) mImageview_save.getDrawable()).getBitmap()

.compress(CompressFormat.PNG, 100, baos);

---------------------------第二种图片数据来源---------------------------------------------------------
//如果图片数据来源是Drawable型,可以用以下方法,drawableimage是Drawable对象

((BitmapDrawable) drawableimage).getBitmap().compress(
CompressFormat.PNG, 100, baos);

---------------------------第三种图片数据来源---------------------------------------------------------
//如果图片数据来源是资源ID,可以用以下方法,先将对应ID的图片对象转为drawable型
Resources res = this.getResources();
Drawable mDrawable = res.getDrawable(R.drawable.xx);

((BitmapDrawable) mDrawable).getBitmap().compress(
CompressFormat.PNG, 100, baos);
-----------------------------------------------------------------------------------------------

byte[] savebyte = baos.toByteArray();

//将byte[]数据插入数据库
mdb.insertImage("cy5",savebyte);

----------------------以下是读取---------------------------------

Cursor mCursor;

mCursor = mdb.queryImage("cy5");

startManagingCursor(mCursor);

mCursor.moveToFirst();

byte[] getbyte = mCursor.getBlob(mCursor.getColumnIndex("image"));

ByteArrayInputStream bais = new ByteArrayInputStream(getbyte);

mImageview_get.setImageDrawable(Drawable.createFromStream(bais, "photo"));

//photo是标识,可以不写,据说是调试的时候可能会用上.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值