Android现学现用第五天

今天完成bitmap的存取~

这是昨天提到的博客里的方法:事实证明,存进去是没有问题的,我正在尝试再读出来。

1、bitmap保存到SQLite 中 数据格式:Blob

     demo。

     db.execSQL("Create table " + TABLE_NAME + "( _id INTEGER PRIMARY KEY AUTOINCREMENT,USER_AGE                INTEGER,USER_NAME TEXT,BITMAP_VALUES BLOB );");

2、bitmap 变为 Blob

    ContentValues values = new ContentValues();

    final ByteArrayOutputStream os = new ByteArrayOutputStream(); 

    bmp.compress(Bitmap.CompressFormat.PNG, 100, os);  

    values.put(MyUser.User.BITMAP_VALUES, os.toByteArray());

    values.put(MyUser.User.USER_NAME,"icon");

    values.put(MyUser.User.USER_AGE,50);

    getContentResolver().insert(MyUser.User.CONTENT_URI, values);

3、从SQLite中读取Bitmap

     byte[] in=cur.getBlob(cur.getColumnIndex(MyUser.User.BITMAP_VALUES));

     bmpout=BitmapFactory.decodeByteArray(in,0,in.length);

总结:

inputStream:  作为数据缓存,数据写如何供别的对象读取,其方法为read();

outputStream:作为数据缓存,将来向别的对象写内容!其方法write();

byte[] in=cur.getBlob(cur.getColumnIndex(MyUser.User.BITMAP_VALUES));//这样也可以对数据进行初始化,byte是基本类型,不需要之前进行长度定义。



关于cursor:


关于 Cursor

  在你理解和使用 Android Cursor 的时候你必须先知道关于 Cursor 的几件事情:

  Cursor 是每行的集合。

  使用 moveToFirst() 定位第一行。

  你必须知道每一列的名称。

  你必须知道每一列的数据类型。

  Cursor 是一个随机的数据源。

  所有的数据都是通过下标取得。

  关于 Cursor 的重要方法:

  close()

  关闭游标,释放资源

  copyStringToBuffer(int columnIndex, CharArrayBuffer buffer)

  在缓冲区中检索请求的列的文本,将将其存储

  getColumnCount()

  返回所有列的总数

  getColumnIndex(String columnName)

  返回指定列的名称,如果不存在返回-1

  getColumnIndexOrThrow(String columnName)

  从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException 异常。

  getColumnName(int columnIndex)

  从给定的索引返回列名

  getColumnNames()

  返回一个字符串数组的列名

  getCount()

  返回Cursor 中的行数

  moveToFirst()

  移动光标到第一行

  moveToLast()

  移动光标到最后一行

  moveToNext()

  移动光标到下一行

  moveToPosition(int position)

  移动光标到一个绝对的位置

  moveToPrevious()

  移动光标到上一行

转载于:https://www.cnblogs.com/NateSheng/archive/2011/09/06/2167830.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值