将图片存储到Sqlite和取出

将图片存储到Sqlite和取出,第1张

概述  //第一步,将Drawable对象转化为Bitmap对象 Bitmap bmp = (((BitmapDrawable)tmp.image).getBitmap()); //第二步,声明并创建一个输出字节流对象 ByteArrayOutputStream os = new ByteArrayOutputStream(); //第三步,调用compress将Bitmap对象压缩为PNG格式,第二 //第一步,将Drawable对象转化为Bitmap对象

Bitmapbmp=(((BitmapDrawable)tmp.image).getBitmap());

//第二步,声明并创建一个输出字节流对象

ByteArrayOutputStreamos=newByteArrayOutputStream();

//第三步,调用compress将Bitmap对象压缩为PNG格式,第二个参数为PNG图片质量,第三个参数为接收容器,即输出字节流os

bmp.compress(Bitmap.CompressFormat.PNG,100,os);

//第四步,将输出字节流转换为字节数组,并直接进行存储数据库 *** 作,注意,所对应的列的数据类型应该是BLOB类型

ContentValuesvalues=newContentValues();

values.put("image",os.toByteArray());

db.insert("apps",null,values);

db.close();

代码看起来比较繁琐,是因为过程的确挺繁琐的,不过可以简单的总结为:

Drawable→Bitmap→ByteArrayOutputStream→sqlite

二、读取
//第一步,从数据库中读取出相应数据,并保存在字节数组中


byte[] blob = cursor.getBlob(cursor.getColumnIndex("image"));


//第二步,调用BitmapFactory的解码方法decodeByteArray把字节数组转换为Bitmap对象


Bitmap bmp = BitmapFactory.decodeByteArray(blob,blob.length);


//第三步,调用BitmapDrawable构造函数生成一个BitmapDrawable对象,该对象继承Drawable对象,所以在需要处直 接使用该对象即可


BitmapDrawable bd = new BitmapDrawable(bmp);

很显然,读取是存储的相反过程,代码思路也差不多,但实现起来简单很多,总结思路为: sqlite→byte[]→Bitmap→BitmapDrawable 总结

以上是内存溢出为你收集整理的将图片存储到Sqlite和取出全部内容,希望文章能够帮你解决将图片存储到Sqlite和取出所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1169979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存