Android(安卓)在SQLite中存取二进制图片
16lz
2021-01-25
想在SQLite中存图片,有两种方式,一种是存图片所在路径,一种就是存二进制文件,在SQLite中存二进制图片选择BLOB类型
存储
private void saveImageToDb(SQLiteDatabase db, Bitmap bitmap, String id) { ByteArrayOutputStream os = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, os); ContentValues values = new ContentValues(); values.put("img", os.toByteArray()); // 对应表字段img db.update("table_name", values, "id = ?", new String[]{id}); // 更新到table_name表指定id的数据 }
读取
private Bitmap readImageFromDb(String id) { Bitmap img = null; byte[] bytes; String sql = "SELECT * FROM table_name WHERE id = ?"; Cursor cursor = db.rawQuery(sql, new String[]{id}); if (cursor.moveToFirst()) { if ((bytes = cursor.getBlob(cursor.getColumnIndex("img"))) != null) { img = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); } } cursor.close(); return img; }
更多相关文章
- android tween 四种动画
- Android(安卓)ApiDemos示例解析(85):Graphics->Vertices
- Android(安卓)图片切换,ImageSwitcher 学习
- Android调用系统裁剪的实现方法
- android 拍照或从相册获取图片 返回 bitmap
- Android(安卓)WebView如何加载assets下的html文件
- Android中banner的使用步骤
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpC
- android显示png图片,原来透明的地方都变成黑色的了