Android 保存圖片到Sqlite 數據庫並從數據庫中獲得圖片

SQlite數據庫中可以直接保存圖片,有兩點說明:

1.建數據庫表時,保存圖片的表字段類型爲BLOB。

2.圖片類型爲Bitmap

保存到數據庫中的代碼如下:

		    final ByteArrayOutputStream os = new ByteArrayOutputStream(); 
		    bmp.compress(Bitmap.CompressFormat.PNG, 100, os);  
		    cv.put("pic", os.toByteArray());

代碼說明:

第一行,構造一個字節輸出流對象,用於保存圖片數據

第二行中的bmp爲要保存到數據庫中圖片,在此圖片必須爲Bitmap類型

第三行,cv爲ContentValues對象,"pic"爲數據庫表中用於保存圖片的字段名稱

用sqlite工具就可以在數據庫直接查看保存到數據庫表中的圖片

從數據庫中讀取圖片代碼如下:

byte[] data = cursor.getBlob(cursor.getColumnIndex("pic"));
BitmapFactory.Options opts = new BitmapFactory.Options();  
BitmapFactory.decodeByteArray(data, 0, data.length, opts)

代碼說明:

第一行,從遊標cursor中獲得圖片數據,cursor是遊標Cursor對象,"pic"爲數據庫表中用於保存圖片的字段名稱
第二行第三行,利用得到的字節數組構造Bitmap對象。


最後說明:通過上面的幾行代碼就可以實現圖片在數據庫中的保存、查詢,但有時候在構造Bitmap對象時會出現內存溢出異常,這將在下一篇中處理


發佈了26 篇原創文章 · 獲贊 11 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章