Sqlite
发布时间:2022-05-22 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用SQLite存储以及读取Drawable对象,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在进行AndroID开发过程中,我们经常会接触到Drawable对象(官方开发文档:A Drawable is a general abstraction for "something that can be drawn."),那么,若要使用数据库来进行存储及读取,该
如何实现?
@H_
696_0@
@H_
696_0@ 一、存储
@H_
696_0@
@H_
696_0@
- //第一步,将Drawable对象转化为Bitmap对象
- Bitmap bmp = (((BitmapDrawablE)tmp.imagE).getBitmap());
- //第二步,声明并创建一个输出字节流对象
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- //第三步,调用compress将Bitmap对象压缩为PNG格式,第二个参数为PNG图片质量,第三个参数为接收容器,即输出字节流os
- bmp.compress(Bitmap.CompressFormat.PNG,100,os);
- //第四步,将输出字节流转换为字节数组,并直接进行存储数据库操作,注意,所对应的列的数据类型应该是BLOB类型
- ContentValues values = new ContentValues();
- values.put("image",os.toByteArray());
- db.insert("apps",null,values);
- db.close();
@H_
696_0@
复制代码
@H_
696_0@
@H_
696_0@
@H_
696_0@ 代码看起来
比较繁琐,
是因为过程的确挺繁琐的,不过可以简单的总结为:
引用:
二、读取
@H_
696_0@
@H_
696_0@
@H_
696_0@
- //第一步,从数据库中读取出相应数据,并保存在字节数组中
- 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);
@H_
696_0@
复制代码
@H_
696_0@
@H_
696_0@
@H_
696_0@ 很显然,读取是存储的相反过程,代码思路也差不多,但实现起来简单很多,总结思路为:
@H_
696_0@
@H_
696_0@
@H_
696_0@
大佬总结
以上是大佬教程为你收集整理的使用SQLite存储以及读取Drawable对象全部内容,希望文章能够帮你解决使用SQLite存储以及读取Drawable对象所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。