切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
Sqlite
二维码和相片在SQLite中的图片保存和查询
二维码和相片在SQLite中的图片保存和查询
2020-07-12
Sqlite
前端之家
前端之家
收集整理的这篇文章主要介绍了
二维码和相片在SQLite中的图片保存和查询
,
前端之家
小编觉得挺不错的,现在分享给大家,也给大家做个参考。
[size=0.83em]
@H_
301
_7@
@H_
301
_9@
二维码
和相片在
sql
ite
数据库
中的
图片
保存
和
查询
@H_
301
_7@
@H_
301
_9@整体的工作流程如下:
@H_
301
_7@
@H_
301
_9@保存流程:
@H_
301
_7@
@H_
301
_7@
@H_
301
_9@
查询
流程:
@H_
301
_7@
@H_
301
_9@该实例主要分为
4
个部分:
@H_
301
_7@
@H_
301
_9@1
、创建一个
二维码
和相片的
数据库
保存和
查询
的工程。
@H_
301
_7@
@H_
301
_9@2
、创建一个
数据库
。
@H_
301
_7@
@H_
301
_9@3
、
二维码
和相片的保存。
@H_
301
_7@
@H_
301
_9@4
、
二维码
和相片的
查询
。
@H_
301
_7@
@H_
301
_9@1
、创建工程
@H_
301
_7@
@H_
301
_9@首先,打开已经配置好的android应用开发的集中开发环境Eclipse。创建一个新的工程SaveImage,Target为2.3.3,包名为:com.yiyiweixiao,主Activity为main。
@H_
301
_7@
@H_
301
_9@如下图所示:
@H_
301
_7@
@H_
301
_9@
@H_
301
_9@
@H_
301
_7@ 然后,创建一个新的布局main.xml @H_
301
_7@ 布局
代码
如下所示: @H_
301
_7@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:layout_height="wrap_content" android:id="@+id/button1"
android:layout_width="wrap_content"
android:text="保存
图片
1"
android:layout_alignParentTop="true" android:layout_alignParentLeft="true"></Button>
<Button android:layout_height="wrap_content" android:id="@+id/button2"
android:layout_width="wrap_content"
android:text="保存
图片
2"
android:layout_alignParentTop="true" android:layout_toRightOf="@+id/button1"></Button>
<Button android:layout_height="wrap_content" android:id="@+id/button3"
android:layout_width="wrap_content"
android:text="
查询
图片
1"
android:layout_below="@+id/button1" android:layout_alignParentLeft="true"></Button>
<Button android:layout_height="wrap_content" android:id="@+id/button4"
android:layout_width="wrap_content"
android:text="
查询
图片
2"
android:layout_alignBaseline="@+id/button3"
android:layout_alignBottom="@+id/button3" android:layout_toRightOf="@+id/button3"></Button>
<ImageView android:src="@drawable/icon" android:layout_width="wrap_content"
android:id="@+id/imageView1"
android:layout_height="wrap_content"
android:layout_below="@+id/button3" android:layout_alignParentLeft="true"></ImageView>
<ImageView android:src="@drawable/icon" android:layout_width="wrap_content"
android:id="@+id/imageView2"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageView1" android:layout_alignLeft="@+id/button4"></ImageView>
</RelativeLayout>
复制
代码
@H_
301
_9@
@H_
301
_7@ @H_
301
_9@
效果
图如下: @H_
301
_7@
@H_
301
_7@
@H_
301
_9@2
、创建一个
数据库
@H_
301
_7@
@H_
301
_9@首先,在包com.yiyiweixiao下面,创建一个
sql
iteOpenHelper助手类的实例
MysqL
iteOpenHelper.java。
@H_
301
_7@
@H_
301
_9@
代码
如下:
package com.yiyiweixiao;
import android.content.Context;
import android.database.
sql
ite.
sql
iteDatabase;
import android.database.
sql
ite.
sql
iteOpenHelper;
import android.database.
sql
ite.
sql
iteDatabase.CursorFactory;
public class
MysqL
iteOpenHelper extends
sql
iteOpenHelper {
// 重写构造
方法
public
MysqL
iteOpenHelper(Context context,String name,
CursorFactory cursor,int version) {
super(context,name,cursor,version);
}
// 创建
数据库
的
方法
public void onCreate(
sql
iteDatabase db) {
// 创建一个
数据库
,表名:imagetable,字段:_id、image。
db.exec
sql
("CREATE TABLE imagetable (_id INTEGER PRIMARY KEY AUTOINCREMENT,image BLOB)");
}
// 更新
数据库
的
方法
public void onUpgrade(
sql
iteDatabase db,int oldVersion,int newVersion) {
}
}
复制
代码
然后,在main.java中创建
MysqL
iteOpenHelper类的实例,并创建一个可读写的
数据库
。
// 创建助手类的实例
// CursorFactory的值为null,表示采用默认的工厂类
MysqL
iteOpenHelper = new
MysqL
iteOpenHelper(this,"saveimage.db",null,1);
// 创建一个可读写的
数据库
mydb =
MysqL
iteOpenHelper.getWritableDatabase();
复制
代码
@H_
301
_9@3、
二维码
和相片向
数据库
中保存的
方法
。
@H_
301
_9@第一步:将
图片
转化为位图。
//将
图片
转化为位图
Bitmap bitmap1=BitmapFactory.decodeResource(getResources(),R.drawable.erweima);
复制
代码
第二步:将位图转化为字节数组。
int size=bitmap1.getWidth()*bitmap1.getHeight()*4;
//创建一个字节数组
输出
流,流的大小为size
ByteArrayOutputStream baos=new ByteArrayOutputStream(size);
//设置位图的压缩格式,质量为100%,并放入字节数组
输出
流中 bitmap1.compress(Bitmap.CompressFormat.PNG,100,baos);
//将字节数组
输出
流转化为字节数组byte[]
byte[] imagedata1=baos.toByteArray();
复制
代码
第三步:将字节数组保存到
数据库
。
//将字节数组保存到
数据库
中
ContentValues cv=new ContentValues();
cv.put("_id",1);
cv.put("image",imagedata1);
mydb.insert("imagetable",cv);
//
关闭
字节数组
输出
流
baos.close();
复制
代码
保存成功后,在
DDMS
中,即可看到保存成功的
文件
。
如下图所示:
用可视化开发工具打开后的列表如下所示:
4
、从
数据库
中
查询
二维码
和相片的
方法
。
第一步:将
数据库
中的Blob(二进制大对象类型)数据转换为字节数组。
方法
如下:
//创建一个指针
Cursor cur=mydb.query("imagetable",new String[]{"_id","image"},null);
byte[] imagequery=null;
if(cur.moveToNext()){
//将Blob数据转化为字节数组imagequery=cur.getBlob(cur.getColumnIndex("image"));
}
复制
代码
第二步:将字节数组转换为位图
//将字节数组转化为位图
Bitmap imagebitmap=BitmapFactory.decodeByteArray(imagequery,imagequery.length);
复制
代码
第三步:将位图
显示
为
图片
iv1=(ImageView) findViewById(R.id.imageView1);
//将位图
显示
为
图片
iv1.setImageBitmap(imagebitmap);
复制
代码
在模拟器中的
显示
效果
如下
至此,便完成了
二维码
和
图片
在
sql
ite
数据库
中的保存和
查询
。
具体的
代码
详见源
代码
,这里只是列出了核心
代码
。谢谢。
上一篇:SQLite初体验
下一篇:SQLite数据库创建、更新入门
猜你在找的Sqlite相关文章
SQLite学习笔记
安装 在Windows上安装SQLite。 访问官网下载下Precompliled Binaries for Windows的两个压...
作者:前端之家 时间:2021-01-12
windows上如何安装Sqlite
一、安装 下载地址:http://www.sqlite.org/download.html 将Precompiled Binaries for Wi...
作者:前端之家 时间:2020-11-05
【Android数据存储】SQLite使用实例(附源码)
实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 ...
作者:前端之家 时间:2020-08-07
SQLite数据库管理
作者:前端之家 时间:2020-08-07
SQLite3常用命令
作者:前端之家 时间:2020-08-07
加密你的SQLite
关于SQLite SQLite是一个轻量的、跨平台的、开源的数据库引擎,它的在读写效率、消耗总量、...
作者:前端之家 时间:2020-08-07
SQLite这么娇小可爱,不多了解点都不行啊
在我眼里,MySQL和Oracle是这样的 而SQLite在是这样的 所以这么萌的数据库,我真的应该多了...
作者:前端之家 时间:2020-08-07
SQLite这么娇小可爱,不多了解点都不行啊
在我眼里,MySQL和Oracle是这样的 而SQLite在是这样的 所以这么萌的数据库,我真的应该多了...
作者:前端之家 时间:2020-08-07
SQLite 这么娇小可爱,不多了解点都不行啊
(点击上方蓝字,快速关注我们) 作者:空之境界 网址:http://supermao.cn/sqlitezhe-yao-...
作者:前端之家 时间:2020-08-07
SQLITE3 使用总结
SQLITE3 使用总结 投稿:hebedich 字体:[ 增加 减小] 类型:转载 时间:2014-08-19 Sql...
作者:前端之家 时间:2020-08-07
编程分类
MySQL
MsSQL
Oracle
Sqlite
Postgre SQL
Mariadb
MongoDB
NoSQL
HBase
JDBC
最新文章
• SQLite学习笔记
• windows上如何安装Sqlite
• 【Android数据存储】SQLit
• SQLite数据库管理
• SQLite3常用命令
• 加密你的SQLite
• 加密你的SQLite
• SQLite这么娇小可爱,不多
• SQLite这么娇小可爱,不多
• SQLite 这么娇小可爱,不多
热门标签
更多 ►
undo日志
persistent-c
mysql-error-
postal-code
sql-match-al
mysql-5.6
mysql-8.0
database-tri
安装路径
系统错误
data_dir
丢失文件
主从同步
sql_mode
数据库目录
匿名用户
character_se
ID归零
数据库位置
查询表
重复字段
查询字段
截断日志
SUSPECT
7391
Remote Serve
Linked Serve
玄学问题
登录不上
开启远程访问