Я работаю над приложением, где я получаю изображение с веб-сервера.BitmapFactory возвращает null
Мне нужно сохранить это изображение в базе данных sqlite. Возможно, он будет сохранен в byte[]
; Я сделал этот путь, взяв тип данных как blob
, а затем извлекая изображение из db и показывая при просмотре изображения.
я застрял где-то, однако: я получаю null
когда я decodefrom ByteArray
код, который я использовал это:
InputStream is = null;
try {
URL url = null;
url = new URL(http://....);
URLConnection ucon = null;
ucon = url.openConnection();
is = ucon.getInputStream();
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer barb = new ByteArrayBuffer(128);
int current = 0;
try {
while ((current = bis.read()) != -1) {
barb.append((byte) current);
} catch (IOException e) {
e.printStackTrace();
}
byte[] imageData = barb.toByteArray();
Затем я вставил ImageData в к БД ..
Для получения изображения:
byte[] logo = c.getBlob(c.getColumnIndex("Logo_Image"));
Bitmap bitmap = BitmapFactory.decodeByteArray(logo, 0, logo.length);
img.setImageBitmap(bitmap);
Но я я получаю сообщение об ошибке:
Bitmap bitmap is getting null.
Байт [] содержит любые данные после c.getBlob()? – sandrstar
@sandstar: да байт [] логотип содержит данные типа- [35,86,56,85,13,78]. – dave21
ByteArrayBuffer больше не доступен в Java, поэтому часть этого решения устарела, поэтому я пытаюсь https://stackoverflow.com/questions/32138739/bytearraybuffer-missing-in-sdk23 – FalconBot