Вниз  Android-программирование (1-ые посты)
- 8.09.2014 / 07:09
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
Помогите разобраться...
Я хочу считать файл в массив байт и этот массив скормить bitmap'е. Но чего-то не работает...

  1. public byte[] abyte0;
  2.     public InputStream is;
  3.     public int  i;
  4.     Bitmap test;
...
  1. try {
  2.         is = this.getClass().getResourceAsStream("/res/drawable-nodpi/ic_launcher.png");
  3.         i = is.available();
  4.         abyte0 = new byte[i];
  5.         is.read(abyte0, 0, i);
  6.         is.close();
  7.         test = BitmapFactory.decodeByteArray(abyte0,0,i);
  8. }catch(Exception e){}
Вроде abyte0 байты читает, через drawText выводится. А битмап пытаюсь рисовать - сразу прога глохнет. Что же не так?

Изменено eNvisible (8.09 / 07:10) (всего 1 раз)
- 8.09.2014 / 08:06
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
А нет, вру, в abyte[] попадает только первый байт... Длинна 1 байт. А как его правильно считать - файл этот?

Изменено eNvisible (8.09 / 08:06) (всего 1 раз)
- 8.09.2014 / 08:21
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
eNvisible, а зачем такие сложности? http://developer.android.com/r...s/BitmapFactory.html — там есть создание bitmap на основе того же ресурса или файла.
- 8.09.2014 / 08:37
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
Ксакеп, А за тем, что надо мне так) Считываемый файл не обязательно bitmap'ом будет. Просто для примера я выбрал картинку...
- 8.09.2014 / 08:54
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Online
eNvisible, не делается так. Файл должен находиться в папке assets, получать с помощью метода context.getAssets().open???("file.png")
__________________
 let live
- 8.09.2014 / 09:14
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
aNNiMON, И так не работает. Файл в assets лежит...

Изменено eNvisible (8.09 / 09:22) (всего 1 раз)
- 8.09.2014 / 09:42
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Online
eNvisible, is.available() не вариант. Тут сотню раз давали пример чтения массива байт, там вида: while( (read = is.read(buf, 0, buf.length) > 0) и всё в ByteArrayOutputStream писалось. Поищи, я сейчас не с компа.
__________________
 let live

Изменено aNNiMON (8.09 / 09:42) (всего 1 раз)
- 8.09.2014 / 09:45
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Online
Вот тут как раз из assets файл читается, только без буфера, а побайтно.
http://annimon.com/article/48
__________________
 let live
- 8.09.2014 / 09:47
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
aNNiMON, Для j2me эта тема работает... Я вот по этому примеру с сайта одного пробую:
  1. // отрывок из офф. док.
  2. InputStream is = getAssets().open("read_asset.txt");
  3. // гарантировано возвратит размер файла,
  4. // размер файла не должен быть больше 2Гб
  5. int size = is.available();
  6. // считываем весь файл в буфер
  7. byte[] buffer = new byte[size];
  8. is.read(buffer);
  9. is.close();
Поищу...)
- 8.09.2014 / 09:49
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
aNNiMON, О, пасибо, буду разбираться)
Наверх  Всего сообщений: 4453
Фильтровать сообщения
Поиск по теме
Файлы топика (184)