2016-10-27 1 views
0

SQLite 테이블에 BLOB 유형 열이 있고 이미지의 byte []를 drawable에서 해당 데이터로 저장하고 있습니다. 검색시 이제, I는 바이트 [상기 코드SQLite에서 이미지를 검색 할 때 BitmapFactory.decodeStream (inputStream)이 null을 반환합니다.

ByteArrayInputStream inputStream = new ByteArrayInputStream(bb); 
      Bitmap bitmap = BitmapFactory.decodeStream(inputStream); 
      iv.setImageBitmap(bitmap); 

로부터 검색 지나지는 화상에 표시되지 않는 표시하도록 다음 코드를 사용하여 다음 커서를

cursor.getBlob(cursor.getColumnIndex(SQLiteHelper.col_product_image)) 

를 이용하여 블로 브를 액세스 및 AM BitmapFactory.decodeStream(inputStream); 이 null이기 때문에보기.

BB의 값은 [91, 66, 64, 52, 51, 54, 102, 51, 53, 51, 48, 0]

도움말!

+0

'bb' ??? BB 란 무엇인가? 재현 가능한 완전한 코드를 보여줘야합니다. – greenapps

+0

'이미지의 바이트 [] 저장하기 f. 얼마나 많은 바이트를 넣었는지, 얼마나 많은 바이트를 가지고 나가야하는지 확인하십시오. – greenapps

답변

0

이진 데이터가 잘못 저장되었습니다.

byte[]toString() 출력하지 바이트 배열 자체 모양 문자열

[[email protected] 

에 바이트

91, 66, 64, 52, 51, 54, 102, 51, 53, 51, 48, 0 

지도.

또한 Android sqlite는 이미지와 같은 크기가 큰 (2MB 이상) 바이너리 데이터를 저장하는 데 적합하지 않습니다. 이미지를 파일 시스템에 저장하고 데이터베이스에 경로를 저장하는 것이 좋습니다.

+0

나에게 참조 링크를 제공 할 수 있습니까? –

관련 문제