android 图片存储读取数据库中,如何在android中存储(位图图像)并从sqlite数据库中检索图像?...
设置数据库public class DatabaseHelper extends SQLiteOpenHelper {
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "database_name";
// Table Names
private static final String DB_TABLE = "table_image";
// column names
private static final String KEY_NAME = "image_name";
private static final String KEY_IMAGE = "image_data";
// Table create statement
private static final String CREATE_TABLE_IMAGE = "CREATE TABLE " + DB_TABLE + "("+
KEY_NAME + " TEXT," +
KEY_IMAGE + " BLOB);";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override public void onCreate(SQLiteDatabase db) {
// creating table
db.execSQL(CREATE_TABLE_IMAGE);
}
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// on upgrade drop older tables
db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);
// create new table
onCreate(db);
}}
在数据库中插入:public void addEntry( String name, byte[] image) throws SQLiteException{
SQLiteDatabase database = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(KEY_NAME, name);
cv.put(KEY_IMAGE, image);
database.insert( DB_TABLE, null, cv );}
检索数据:byte[] image = cursor.getBlob(1);
注意:在插入数据库之前,需要先将Bitmap图像转换为字节数组,然后使用数据库查询应用它。
从数据库中检索时,您肯定有一个图像字节数组,您需要做的是将字节数组转换回原始图像。因此,您必须使用BitmapFactory进行解码。
下面是一个实用工具类,我希望可以帮助你:public class DbBitmapUtility {
// convert from bitmap to byte array public static byte[] getBytes(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0, stream);
return stream.toByteArray();
}
// convert from byte array to bitmap public static Bitmap getImage(byte[] image) {
return BitmapFactory.decodeByteArray(image, 0, image.length);
}}
进一步阅读
如果您不熟悉如何插入和检索数据库,请完成本教程。
android 图片存储读取数据库中,如何在android中存储(位图图像)并从sqlite数据库中检索图像?...相关推荐
- android开发使用c+_如何在Android项目中开始使用C ++代码
android开发使用c+ by Onur Tuna 通过Onur Tuna 如何在Android项目中开始使用C ++代码 (How to start using C++ code in your ...
- android 文本后图标_如何在Android中更改文本,图标等的大小
android 文本后图标 Let's face it: no matter how good the screens are on our phones and tablets, the text ...
- android中访问手机存储空间,android – 访问手机内部存储以推入SQLite数据库文件...
我正在使用Netbeans和java开发我的android应用程序.当我使用模拟器时,我可以通过访问以下路径,data / data / com.example.helloandroid / data ...
- android studio点击图片,如何在Android Studio中的模拟器图库中添加图像?
如何在Android Studio中的模拟器图库中添加图像? 我正在开发图像过滤器应用程序. 但是,如果我没有任何图像,就无法真正尝试. 我知道我可以在电话中对其进行测试,但这并不相同,因为我需要错误 ...
- android 调出键盘表情_如何在Android的G板键盘中搜索表情符号和GIF | MOS86
老实说,这里是1010mh1112 GIF和表情符号是新形式的沟通.像他们似乎愚蠢的,他们以某种方式添加了一个额外的层次,我们与朋友和家人通过文本或即时消息交互的方式,否则可能会干燥.虽然表情符号长期 ...
- android开发 转跳功能,如何在Android中利用Intent实现一个页面跳转功能
如何在Android中利用Intent实现一个页面跳转功能 发布时间:2021-02-20 17:06:31 来源:亿速云 阅读:113 作者:Leah 本篇文章为大家展示了如何在Android中利用 ...
- android 工具栏沉浸 下拉,如何在Android应用中实现一个沉浸式状态栏效果
如何在Android应用中实现一个沉浸式状态栏效果 发布时间:2020-12-08 17:04:42 来源:亿速云 阅读:151 作者:Leah 这篇文章将为大家详细讲解有关如何在Android应用中 ...
- android 如何读取cgi_Python基础教程(十):CGI编程、MySQL数据库
Python CGI编程 什么是CGI CGI 目前由NCSA维护,NCSA定义CGI如下: CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如: ...
- android.mk if else,gradle - 如何在Android Studio中使用我自己的Android.mk文件 - SO中文参考 - www.soinside.com...
[我正在Android.mk文件中定义一些变量(我正在为编译器传递一些标志),但是每次构建项目时,Android.mk都会被覆盖.我假设Gradle是负责任的,我应该去那里看看吗? 如何使用我自己的A ...
- android studio 读取内存txt文件_SharedPreference与文件存储
Android常用数据存储方式有SharedPreferences存储数据(虽然还是属于内部存储).文件存储(内部,外部).SQLite数据库存储.ContentProvider存储数据.网络存储数据 ...
最新文章
- PEP8 Python
- cython安装、使用
- PHP读取EXCEL
- springboot+多线程简单实现
- mysql忽略列,MySQL:使用DISTINCT时忽略选定的列
- 网易云信独家技术支持,壹点灵领跑心理服务行业
- 如何使用 sklearn 优雅地进行数据挖掘?
- 以前的项目今日打开突然报错了!
- MybatisPlus实现逻辑删除
- 通信模式与网络协议之间的对应关系
- python爬取小游戏_如何用Python爬取小游戏网站,把喜欢的游戏收藏起来(附源码)...
- Mapgis图转换为可导入软件的shp
- Leetcode每日一题:659.split-array-into-consecutive-subsequences(分割数组为连续子序列)
- 【剑指offer】面试题五:从尾到头打印链表
- 导入项目运行报错:Error starting ApplicationContext. To display the conditions report re-run your application
- 台式计算机锁屏快捷键,台式机锁屏快捷键是什么
- web结课作业的源码 HTML5+CSS大作业——个人博客-功能齐全(48页) html大学生网站开发实践作业
- CSS3(新增样式)
- Android 5.0、6.0、7.0、8.0、9.0 新特性,DownloadManager踩坑记
- 解决M1处理器款mac安装DW闪退问题 Dreamweaver 2021 Mac(已适配M1芯片,支持最新款M1芯片Mac)