Низкоуровневые ресурсы

Низкоуровневые ресурсы

В дополнение к произвольным XML-файлам в Android можно использовать низкоуровневые (raw) файлы. Такие ресурсы содержатся в каталоге /res/raw, и к ним относятся аудио-, видео- и текстовые файлы, которые требуют локализации или ссылки через идентификаторы ресурсов. В отличие от XML-файлов, хранящихся в каталоге /res/xml, эти файлы не компилируются, а помещаются в пакет приложения в неизменном виде. Тем не менее, в R.java каждому такому файлу назначается идентификатор. Если имеется текстовый файл /res/raw/test.txt, то его можно прочитать с помощью кода, приведенного в листинге 3.33.

Листинг 3.33. Чтение низкоуровневого ресурса

String getStringFromRawFile(Activity activity) throws IOException {

Resources r = activity.getResources();

InputStream is = r.openRawResource(R.raw.test);

String myText = convertStreamToString(is);

is.close();

return myText;

}

String convertStreamToString(InputStream is) t hrows I OExce pt ion {

ByteArrayOutputStream baos = new ByteArrayOutputStream(); int i = is.read(); while (i != -1)

{

baos.write(i); i = is.read();

}

return baos.toString();

}

Внимание! В подключаемом модуле Edipse ADT имена файлов с одинаковым базовым именем приводят к возникновению ошибки сборки. Это случай генерации идентификаторов ресурсов на основе их имен файлов.

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий