2013-03-05 2 views
2

Я работаю над Android-приложением, в котором я разбираю данные из веб-службы, а затем сохраняю его в базе данных. здесь я также хочу сохранить изображение в базе данных и вернуться к следующему действию.Сохранить изображение в базе данных SQLite, получая с webservice

Я использую этот код для вставки изображения в базу данных.

Bitmap yourSelectedImage; 
ByteArrayOutputStream stream; 
byte[] byteArray; 

это в цикл

{ 
yourSelectedImage = BitmapFactory.decodeFile(SingleImageURL[i]); 
stream = new ByteArrayOutputStream(); 
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, 
        stream); 
byteArray = stream.toByteArray(); 

database.insertDetail(ID[i],byteArray[i]); 

} 

Здесь SingleImageURL есть URL изображения, который исходит от WebService.

, когда я буду запускать код будет давать NullPointerException ошибки в этой строке

yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, 
        stream); 

пожалуйста скажите мне, где я буду неправильно. и как это сделать.

+0

отладки вашей программы и посмотреть, что вы получаете в SingleImageURL ?? – Shiv

ответ

3

Загрузите ваш растровый рисунок yourSelectedImage используя this link. а затем сохраните его в базе данных, преобразов его в byte[]

Вы декодируете файл, который на самом деле является URL-адресом. Так ур yourSelectedImage - null. И когда вы пытаетесь сжать его с помощью

yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream); 

вы получите NullPointerException

Смежные вопросы