- 浏览: 142277 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
flyingcatjj:
很适合我这种刚接触的
myeclipse xfire 开发webservice实例 -
tangzlboy:
非常好,非常详细,非常中用。
linux入门 -
yzz9i:
楼主说的很是详细。
myeclipse xfire 开发webservice实例 -
zqx888191:
很再理阿!
老程序员的教诲 -
simplecat123:
...
SQLite数据读取
Bitmap Drawable byte[] 三者之间的转换以及把数组存入数据库及提取数据重新组合
- 博客分类:
- android
Bitmap Drawable byte[] 三者之间的转换以及把数组存入数据库及提取数据重新组合成所需对象,如图像(2011-11-24 16:00:19)转载▼标签: 杂谈
1.创建数据库表的时候选择存图片的字段类型为blob
StringBuffer createTableOfHistory = new StringBuffer();
createTableOfHistory.append("CREATE TABLE "+某表名);
createTableOfHistory.append(" ( _id INTEGER PRIMARY KEY AUTOINCREMENT ,");
createTableOfHistory.append(该存图片的字段名+" BLOB ,");
createTableOfHistory.append(其他字段名1+" TEXT ,");
.......
createTableOfHistory.append(其他字段名n+" TEXT );");//记得这里带个“;”封号
db.execSQL(createTableOfHistory.toString());//执行该创表语句
2.存储数据
2.1将数据流转成数组的方法
InputStream inputStream = getResources().openRawResource(R.drawable.icon);
private static byte[] streamToBytes(InputStream is) {
ByteArrayOutputStream os = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
int len;
try {
while ((len = is.read(buffer)) >= 0) {
os.write(buffer, 0, len);
}
} catch (java.io.IOException e) {
}
return os.toByteArray();
}
2.2.将Bitmap对象转换成数组的方法【包含从资源文件中获得图片对象Bitmap】
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
private static byte[] bitmapToBytes(Bitmap bitmap){
if (bitmap == null) {
return null;
}
final ByteArrayOutputStream os = new ByteArrayOutputStream();
// 将Bitmap压缩成PNG编码,质量为100%存储
bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);//除了PNG还有很多常见格式,如jpeg等。
return os.toByteArray();
}
ContentValues values = new ContentValues();
values.put(该存图片的字段名, readHistoryInfo.getBookIcon());
values.put(其他字段名1, “2011-05-17”);
......
return mSqliteDatabase.insert(表名, null, values);//插入数据
3.提取数据库中的数组数据并转换成Bitmap或DrawableBitmap对象【包含byte[] —> Bitmap】
某类对象m(该类是负责创表,删表,插入数据,删除数据的类).openOrCreateDB();//openOrCreateDB()也是该类的一个打开或创建数据库的方法。
Cursor cursor = 某类对象m.getData(该存图片的字段名, null);
if (cursor.moveToFirst()) {
// byte[] —> Bitmap
byte[] bytes = cursor.getBlob(cursor.getColumnIndex(该存图片的字段名));
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, null);
BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
}
4.Drawable —> Bitmap
Bitmap bm = xxx; //xxx根据你的情况获取
BitmapDrawable bd= new BitmapDrawable(bm);
提示:因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。
public static Bitmap drawableToBitmap(Drawable drawable) {
Bitmap bitmap = Bitmap.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.OPAQUE ?
Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565);
return bitmap;
}
Drawable d=xxx; //xxx根据自己的情况获取drawable
BitmapDrawable bd = (BitmapDrawable) d;
Bitmap bm = bd.getBitmap();
发表评论
-
Android Service生命周期及用法
2011-03-28 13:03 577写道 大家好,上一节 ... -
Android Activity生命周期
2011-03-28 11:41 748大家好,今天给大家详解一下Android中Activity的生 ... -
Drawable使用入门
2011-03-25 16:03 1101一个让人赏心悦目的界面对软件来说非常重要,因此图形图像资源也显 ... -
Android 中的几个常用控件
2011-03-24 14:43 965写道 1、RadioButton RadioButton ... -
android命令
2011-03-03 14:44 923写道 大家好,今天我 ... -
android学习的好网址
2011-02-22 10:10 881http://www.droidnova.com/and ... -
linux下操作android模拟器命令
2011-02-14 17:14 2105写道 1:列出模拟器类型 android list ... -
Activity生命周期
2011-02-08 19:59 845大家好,今天给大家详解一下Android中Activit ... -
Intent对象的简单使用
2011-02-08 00:38 578如果要转换的页面不只是背景,颜色或文字内容的不同,而是A ... -
setContentView的应用
2011-02-08 00:34 1484手机页面的转换set ... -
多个Activity之间的通信与数据传递的Bundle对象的使用
2011-02-08 00:18 1139在Activity 中调用另一个Activity ,但若 ... -
多个Activity之间的通信
2011-02-07 22:38 2010第一步:新建一个继承Activity的类,如:NewActiv ... -
共享数据功能使用-ContentProvider
2011-01-26 11:03 1148package it.date; import it ... -
外部应用访问
2011-01-11 16:29 1926使用context中的文件输出流它有四种模式: * ... -
使用SharedPreferences进行数据存储-
2011-01-11 11:07 961很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们 ... -
pull读取xml--android
2011-01-09 22:54 1907pull解析xml文件,和sax和dom一样 都可以脱离and ... -
dom读取xml文档---android
2011-01-09 22:26 1254除了可以使用 SAX解析XML文件,大家也可以使用熟悉的DOM ... -
数据保存到sd卡上
2011-01-05 17:22 9401 关键代码 package cn.lee.data; ... -
android读取功能
2011-01-05 16:03 9171 设计界面 <?xml version=" ... -
android的日志输出和单元测试
2010-12-31 17:52 1508日志输出 代替Syste ...
相关推荐
详细的介绍了android_Drawable、Bitmap、byte[]之间的转换 在android开发中非常实用
Android Drawable、Bitmap、byte、灰度 之间的转换
Drawable Bitmap InputStream byte[]相互转化工具类,单例模式
Android Drawable、Bitmap、byte、灰度 转换
一个在VC中将Bitmap转换为Byte[]的小例子。
android bitmap通过byte数组以流的形式创建,自己加了进度条,看起来稍微好点
文档中描述了Drawable Bitmap 几种转换方法供初学者使用。方法都是经过实践验证的。
将Bitmap转成byte[],进行保存,用到时再取出byte[],转化成Bitmap,进行显示
Drawable Bitmap之间的转化Drawable Bitmap之间的转化
将图片由bitmap类型转换为stream类型再转换为byte[]类型,然后再还原
1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库。 2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。 3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。 ...
android 画图 bitmap drawable canvas paint
1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2、Canvas画布,绘图的...
Android Drawable和Bitmap的转换实例详解 通常我们需要通过代码去设置图片,就需要设置图片Bitmap和Drawable的转换,下面整理了几种方式 一、Bitmap转Drawable Bitmap bm=xxx; //xxx根据你的情况获取 ...
Halcon_Bitmap转换方法 写的文档 开发笔记
android平台jpeg数据流转换成rgb直接显示的so库 使用方式: byte[] jpegRaw = V4L2Camera.decode(dataBuf, ret); rgb2Buffer(jpegRaw, WIDTH, HEIGHT, rgbBuffer); ByteBuffer jpegBuffer = ByteBuffer.wrap(rgb...
很多开发者表示,不知道Android的Drawable和Bitmap之间如何相关转换。下面Android123给大家两种比较简单高效的方法。 一、Bitmap转Drawable 代码如下: Bitmap bm=xxx; //xxx根据你的情况获取 BitmapDrawable bd...
Android图片Bitmap和字符串String之间相互转换的工具类,外加项目代码,封装好的,直接可以用,
解决方法之一:把Bitmap对象替换成byte数组来表示间接表示图片,在需要Bitmap的时候再讲byte数组转换成Bitmap对象。这是因为byte数组和Bitmap之间的可以转化,实现也比较方便。 附byte数组与Bitmap的相互转换方法: ...
主要介绍了C#实现Stream与byte[]之间的转换方法,具体讲解了二进制转换成图片、byte[]与string的转换、Stream 和 byte[] 之间的转换、Stream 和 文件之间的转换、从文件读取 Stream以及Bitmap 转化为 Byte[]等,需要的...