android sqlite 图片保存和读出 用流 转字节码

原文:http://blog.sina.com.cn/s/blog_8cfbb99201012oqn.html

package com.yiyiweixiao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class MySQLiteOpenHelper extends SQLiteOpenHelper {
// 重写构造方法
public MySQLiteOpenHelper(Context context, String name,
CursorFactory cursor, int version) {
super(context, name, cursor, version);
}

// 创建数据库的方法
public void onCreate(SQLiteDatabase db) {
// 创建一个数据库,表名:imagetable,字段:_id、image。
db.execSQL("CREATE TABLE imagetable (_id INTEGER PRIMARY KEY AUTOINCREMENT,image BLOB)");
}

// 更新数据库的方法
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

// 创建助手类的实例
// CursorFactory的值为null,表示采用默认的工厂类
mySQLiteOpenHelper = new MySQLiteOpenHelper(this, "saveimage.db", null,1);
// 创建一个可读写的数据库
mydb = mySQLiteOpenHelper.getWritableDatabase();

//将图片转化为位图
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();

从数据库中查询的方法:
//创建一个指针
Cursor cur=mydb.query("imagetable", new String[]{"_id","image"}, null, null, null, null, null);
byte[] imagequery=null;
if(cur.moveToNext()){
//将Blob数据转化为字节数组imagequery=cur.getBlob(cur.getColumnIndex("image"));
}
//将字节数组转化为位图
Bitmap imagebitmap=BitmapFactory.decodeByteArray(imagequery, 0, imagequery.length);
iv1=(ImageView) findViewById(R.id.imageView1);
//将位图显示为图片
iv1.setImageBitmap(imagebitmap);

时间: 2024-08-15 12:01:05

android sqlite 图片保存和读出 用流 转字节码的相关文章

ANDROID 实现图片保存

1.java代码,下载图片的主程序 先实现显示图片,然后点击下载图片按钮,执行下载功能. 从网络上取得的图片,生成Bitmap时有两种方法,一种是先转换为byte[],再生成bitmap:一种是直接用InputStream生成bitmap. (1)ICS4.0及更高版本中的实现 4.0中不允许在主线程,即UI线程中操作网络,所以必须新开一个线程,在子线程中执行网络连接:然后在主线程中显示图片. [java] view plaincopy在CODE上查看代码片派生到我的代码片 public cla

Android将图片保存到相册并及时看到

Android中将图片保存到SD卡中,相册里不会及时出现这张图片,因为没有及时更新其索引,一般需要开机几次.当然我们可以手动更新其索引. 1,首先将文件保存到SD卡中. String filePath = "xxx"; //全路径 saveImgToSDcard(filePath); 2,增加Android 内部媒体索引. public boolean saveImgToGallery(String filePath) { boolean sdCardExist = Environme

Android中图片加载框架Glide解析2----从源码的角度理解Glide的执行流程

转载地址:http://blog.csdn.net/guolin_blog/article/details/53939176 在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架的强大功能,以及它非常简便的API.还没有看过上一篇文章的朋友,建议先去阅读 Android图片加载框架最全解析(一),Glide的基本用法 . 在多数情况下,我们想要在界面上加载并展示一张图片只需要一行代码就能实现,如下所示: Glide.with(this).load(url).into(i

Lua2.4 保存字节码 dump.c

严格意义上说,把 dump 这部分叫保存字节码并不准确.因为除了保存 TFunc 里的字节码 code 之外,还保存了其它的内容.比如函数头,字节序及字节码需要的数据等.所以,准确的说应该叫保存字节码及环境,或者叫做保存世界,就是字节码生成之后的运行时相关信息也保存了下来.可以从保存下来的这些信息恢复出字节码执行时需要的运行时,默认的保存文件就是之前所说的那个 luac.out 的二进制文件.咬文嚼字一下,dump 这里翻译为保存意思应该差不多,undump 则是它的相反操作,可以叫做恢复.du

Android View转换成图片保存

package zhangphil.viewtoimage; import java.io.File; import java.io.FileOutputStream; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.view.View; import android.widget.Button; import android.widget.Tex

android截屏:保存一个view的内容为图片并存放到SD卡

项目中偶尔会用到截屏分享,于是就有了下面这个截屏的方法~ 下面得saveImage()方法就是保存当前Activity对应的屏幕所有内容的截屏保存. private void saveImage() { // SD卡保存路径 String savePath = Environment.getExternalStorageDirectory() + "/temp.png"; // showProgress("请稍候", "正在保存图片--"); s

android将应用中图片保存到系统相册并显示

我应用到的场景是程序中在视频通讯时截图,将截图保存到本地相册中 /*** @param bmp 获取的bitmap数据 * @param picName 自定义的图片名*/ public static void saveBmp2Gallery(Bitmap bmp, String picName) { String fileName = null; //系统相册目录 String galleryPath= Environment.getExternalStorageDirectory() + F

Android+Sqlite 实现古诗阅读应用(三)

往期传送门: Android+Sqlite 实现古诗阅读应用(一) Android+Sqlite 实现古诗阅读应用(二) 加入截图分享的功能. 很多应用都有分享的功能,我也想在我的古诗App里加入这个功能,单纯的发送文字看起来太逊了,我决定模仿UC浏览器那样发送古诗的截图,使用官方的分享需要授权KEY,太过麻烦所以打算使用系统的分享. 1.在meau里添加这个item: 1 <item 2 android:id="@+id/menu_item_share" 3 android:s

Android压缩图片和libjpeg库

前言 Fjpeg使用 Fjpeg 注意 如何使用 如何压缩图片只改变在硬盘的存储大小 如何改变图片分辨率让其Bitmap对象可以加载到内存中 关于重载版本 开始学习之旅 补充知识的结论 修改图片分辨率 防止在Android加载Bitmap的时候oom内存溢出 解决方案1 解决方案2 希望压缩图片方便网络传输 第一种方案利用Bitmapcompress方法压缩 第二种利用libjpeg压缩 在Android50测试两个 图片压缩 在Android60测试两个 图片压缩 解释Android50和60