Android assets (активи)

В Android є ще один каталог, в якому можуть зберігатися файли, що мають бути включені в пакет - assets. Цей каталог знаходиться на тому ж рівні, що і res. Для файлів, розташованих в assets. в R.java не генеруються ідентифікатори ресурсів. Для їх зчитування необхідно вказати шлях до файлу. Шлях до файлу є відносним і починається з / assets. Цей каталог, на відміну від підкаталогу res. дозволяє задавати довільну глибину підкаталогів і довільні імена файлів і підкаталогів.

За замовчуванням проект в студії не містить дану папку. Щоб її створити, виберіть меню File | New | Folder | Assets Folder.

читання файлів

Для доступу до файлів Assets використовується клас AssetManager. Приклад для читання текстового файлу:

Для доступу до графічного файлу з активу можна використовувати наступний код:

Ви також можете завантажити зображення в Bitmap. використовуючи BitmapFactory.decodeStream (). замість Drawable.

Використовуємо власні шрифти

Напишемо практичний приклад створення програми, в якому будуть використовуватися власні шрифти, які не входять в стандартну бібліотеку шрифтів Android. Для цього ми спакуємо потрібні шрифти разом з додатком. Помістимо в каталог assets / fonts файли шрифтів (можна завантажити безкоштовні шрифти з сайтів 1001 Free Fonts або Urban Fonts).

У файл розмітки додамо пару текстових полів з заготовленим текстом для виведення цього тексту з нашим шрифтом.

У класі активності завантажимо об'єкт EditText з ресурсів, а потім створимо об'єкт Typeface. використовуючи виклик статичного методу Typeface.createFromAsset (). Метод createFromAsset () приймає два параметри:

  • об'єкт AssetManager. який можна отримати викликом методу getAssets ()
  • шлях до файлу активу.

Наприклад, завантажити шрифт для текстового поля EditText можна в такий спосіб:

Запустивши проект, ми побачимо в текстових полях написи Happy New Year! і Meow !. виведені нашими власними шрифтами.

Android assets (активи)

Приклад для фрагмента.

Завантаження локальних файлів з активів в WebView

Якщо потрібно завантажити локальні сторінки і зображення з активів в WebView, то можна використовувати префікс file: // android_asset. Детальніше дивіться в статті про WebView.

Отримуємо список файлів в папці assets

Можна отримати список файлів, які знаходяться в папці assets. Для швидкої перевірки коду я вручну скопіював в папку два файли:

Крім ваших файлів, також повертаються дивні папки / images. / Sounds. / Webkit. Враховуйте це в своїх проектах. Так як в папці можна створювати власні папки, то можна скористатися допоміжним методом:

Обмеження на розмір файлів

По мережі гуляє інформація, що існує обмеження в 1 Мб на розмір файлів в папці assets. При перевищенні розміру у вас може з'явитися помилка:

Я не стикався, тому рецепт вирішення проблеми не пропоную.

додаткове читання

Схожі статті