2011-05-17 110 views
0

我一直在嘗試將圖像形式的android sdcard存儲到sqlite數據庫。它工作得很好。圖像以blob的形式存儲到數據庫中。這是我一直在使用的粗略代碼。如何顯示android sqlite中blob數據的圖像?


   Bitmap bitmap = BitmapFactory.decodeFile(filePath); 
    imgView.setImageBitmap(bitmap); 
    int size = bitmap.getWidth() * bitmap.getHeight(); 
    ByteArrayOutputStream out = new ByteArrayOutputStream(size); 
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); 
    try { 
    out.flush(); 
    out.close(); 
    } catch (IOException e) { 
    e.printStackTrace();} 
      byte[] x = out.toByteArray(); 

在數據庫側,所述代碼是這樣的

  ContentValues values = new ContentValues(); 
      byte[] bytes = null; 
      bytes = img_bytes.getBytes(); 
      values.put("IMAGE", bytes); 

和用於顯示我所使用的代碼如下所示。

ImageView image = new ImageView(this); 
    byte[] img_bytes = result.get("IMAGE").getBytes(); 
    Bitmap bMap = BitmapFactory.decodeByteArray(img_bytes, 0, img_bytes.length); 
image.setImageBitmap(bMap); 

當我打印字節數組的字符串值時,它變得像[B @ 44da2db0。但是字節數組沒有顯示到圖像中。

有人請幫助我。 謝謝

+0

看到這個http://stackoverflow.com/questions/6041202/how-to-store-images-in-sqlite-database-on-click-event-of-button – 2011-10-28 07:21:16

回答

3

我找到了解決方案。謝謝大家。

我已經使用了base64編碼方法。 ie;爲了顯示圖像,我一直使用哈希映射首先從數據庫表中獲取結果。 因此,在保存到地圖之前,我使用base 64方法將字節編碼爲字符串。 然後在活動端顯示圖像,我已經使用base 64解碼了字符串,然後轉換爲字節並顯示圖像。

+1

它沒有解決方案..它的替代方法做它... – dhams 2011-09-09 10:55:36

+1

代碼請。謝謝 – ayahya82 2013-08-03 02:31:00

相關問題