2013-03-19 4 views
0

Я должен преобразовать байт в растровое и я поставил его в ImageViewConvert Byte в Bitmap

я действительно есть METHODE, которые преобразуют Bitmap в ImageView в Byte и я вставить его позже,

public static byte[] ConvertDrawableToByteArray(Drawable drawableResource) { 

      Bitmap imageBitmap = ((BitmapDrawable) drawableResource).getBitmap(); 
      ByteArrayOutputStream imageByteStream = new ByteArrayOutputStream(); 
      imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, imageByteStream); 
      byte[] imageByteData = imageByteStream.toByteArray(); 
      return imageByteData; 

} 

и когда я хочу, чтобы получить изображение из базы данных и показать его в ImageView я сделать

//-- 
      byte[] image_b = c.getBlob(4); 
      Bitmap b = BitmapFactory.decodeByteArray(image_b, 0, image_b.length); 
      img.setImageBitmap(b); 

но не возвращает ничего

что не так, пожалуйста, помогите

Спасибо большое

+0

Вы пробовали переходить через код с помощью отладчика? –

+0

, пожалуйста, напишите свой стек/logcat, когда вы пытаетесь получить blob. –

ответ

1

Я думаю, это потому, что курсор ничего не вернуть. Возможно, Blob слишком велик, чтобы быть запрошенным за один раз, потому что ограничение на курсор Android составляет 1 мб за запрос, пожалуйста, еще раз проверьте свой стек/логарифм, и если размер блоба - это проблема, вы можете попытаться разбить байт на меньший размер и сохранить его в база данных

+0

У меня это в logcat, и я не хочу, чтобы подстроить 'файл открытия ошибки: нет такого файла или каталога (2) Пропущено 101 фрейм! Приложение может делать слишком много работы над своей основной нитью. Пропуск записи 0x7f020002 в таблице пакетов 0, потому что это не сложно! GREF увеличен до 201 SkImageDecoder :: Factory возвращается null Пропущено 40 кадров! Приложение может делать слишком много работы над своей основной нитью. GC_CONCURRENT освобожден 1814K, 7% бесплатно 26919K/28860K, приостановлено 95ms + 25ms, всего 237ms WAIT_FOR_CONCURRENT_GC заблокировано 143ms 03-19 16: 23: 05.556: D/skia (948): --- SkImageDecoder :: Factory возвращен null' –

+0

Да, я думаю, вам не удалось получить байт [], вы пытались зарегистрировать image_b? вы можете сделать это путем преобразования image_b.toString(), чтобы проверить, действительно ли у файла image_b есть какие-либо данные или нет. –

+0

Мне нужно перезапустить Eclipse, и я попытаюсь зарегистрировать image_b, я должен просто добавить image_b.toString(); –

0

Вы можете поиграть со следующим и дайте нам знать, если он работает:

String[] filePathColumn = { MediaStore.Images.Media.DATA }; 
     Cursor cursor = resolver.query(imageUri, filePathColumn, null, null, null); 
     cursor.moveToFirst(); 
     int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     String picturePath = cursor.getString(columnIndex); 
     cursor.close(); 
     return BitmapFactory.decodeFile(picturePath); 
0

Я не понимаю, где это problèlme я сделать LiKee это: String = т image_b.toString(); System.out.println («что он дает мне» + t); и я нахожу в logcat эту строку: 03-19 17: 01: 28.167: I/System.out (1019): что мне это дает [B @ 41f1f5c0

это означает, что он возвращает что-то, но не показывает или байт [[email protected] недействителен