android如何显示blob字段?求答案
2个回答
推荐于2016-09-26 · 知道合伙人教育行家
关注
展开全部
android如何显示blob方法如下:
BOLB表示二进制大对象,这种数据类型通过用来保存图片,图象,视频等。
一,使用场景:
http://blog.sina.com.cn/s/blog_8cfbb99201012oqn.html
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
1,重写构造方法
public MySQLiteOpenHelper(Context context, String name,
CursorFactory cursor, int version) {
super(context, name, cursor, version);
}
2, 创建数据库的方法
public void onCreate(SQLiteDatabase db) {
3, 创建一个数据库,表名:imagetable,字段:_id、image。
db.execSQL("CREATE TABLE imagetable (_id INTEGER PRIMARY KEY AUTOINCREMENT,image BLOB)");
}
4, 更新数据库的方法
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
5,创建助手类的实例
// CursorFactory的值为null,表示采用默认的工厂类
mySQLiteOpenHelper = new MySQLiteOpenHelper(this, "saveimage.db", null,1);
6, 创建一个可读写的数据库
mydb = mySQLiteOpenHelper.getWritableDatabase();
7,将图片转化为位图
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", null, cv);
//关闭字节数组输出流
baos.close();
二,从数据库中查询的方法:
1,创建一个指针
Cursor cur=mydb.query("imagetable", new String[]{"_id","image"}, null, null, null, null, null);
byte[] imagequery=null;
if(cur.moveToNext()){
2,将Blob数据转化为字节数组imagequery=cur.getBlob(cur.getColumnIndex("image"));
}
3,将字节数组转化为位图
Bitmap imagebitmap=BitmapFactory.decodeByteArray(imagequery, 0, imagequery.length);
iv1=(ImageView) findViewById(R.id.imageView1);
4,将位图显示为图片
iv1.setImageBitmap(imagebitmap);
BOLB表示二进制大对象,这种数据类型通过用来保存图片,图象,视频等。
一,使用场景:
http://blog.sina.com.cn/s/blog_8cfbb99201012oqn.html
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
1,重写构造方法
public MySQLiteOpenHelper(Context context, String name,
CursorFactory cursor, int version) {
super(context, name, cursor, version);
}
2, 创建数据库的方法
public void onCreate(SQLiteDatabase db) {
3, 创建一个数据库,表名:imagetable,字段:_id、image。
db.execSQL("CREATE TABLE imagetable (_id INTEGER PRIMARY KEY AUTOINCREMENT,image BLOB)");
}
4, 更新数据库的方法
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
5,创建助手类的实例
// CursorFactory的值为null,表示采用默认的工厂类
mySQLiteOpenHelper = new MySQLiteOpenHelper(this, "saveimage.db", null,1);
6, 创建一个可读写的数据库
mydb = mySQLiteOpenHelper.getWritableDatabase();
7,将图片转化为位图
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", null, cv);
//关闭字节数组输出流
baos.close();
二,从数据库中查询的方法:
1,创建一个指针
Cursor cur=mydb.query("imagetable", new String[]{"_id","image"}, null, null, null, null, null);
byte[] imagequery=null;
if(cur.moveToNext()){
2,将Blob数据转化为字节数组imagequery=cur.getBlob(cur.getColumnIndex("image"));
}
3,将字节数组转化为位图
Bitmap imagebitmap=BitmapFactory.decodeByteArray(imagequery, 0, imagequery.length);
iv1=(ImageView) findViewById(R.id.imageView1);
4,将位图显示为图片
iv1.setImageBitmap(imagebitmap);
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
展开全部
写这种代码概念也要先搞清楚,下面是关于blob的一些概念:BLOB的含义
BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。 BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。 根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。 但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。
编辑本段BLOB和CLOB的区别
大型对象 BLOB就是使用二进制保存数据。 如:保存位图。 CLOB使用CHAR来保存数据。
BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。 BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。 根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。 但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。
编辑本段BLOB和CLOB的区别
大型对象 BLOB就是使用二进制保存数据。 如:保存位图。 CLOB使用CHAR来保存数据。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询