- Assets (Активы)
- Чтение файлов
- Используем собственные шрифты
- Загрузка локальных файлов из активов в WebView
- Получаем список файлов в папке assets
- Ограничение на размер файлов
- Assets Folder in Android Studio
- How the asset folder is different from the Resource Raw folder?
- But when to use which folder?
- How to Create Assets Folder in Android Studio?
- Где я могу разместить папку «assets» в Android Studio?
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Ответ 8
- Ответ 9
- Ответ 10
- Ответ 11
- Ответ 12
- Ответ 13
- Ответ 14
- Ответ 15
- Ответ 16
- Ответ 17
- Ответ 18
- Ответ 19
- Ответ 20
- Где я могу разместить папку «активы» в Android Studio?
- 19 ответов:
Assets (Активы)
В Android имеется ещё один каталог, в котором могут храниться файлы, предназначенные для включения в пакет — assets. Этот каталог находится на том же уровне, что и res. Для файлов, располагающихся в assets, в R.java не генерируются идентификаторы ресурсов. Для их считывания необходимо указать путь к файлу. Путь к файлу является относительным и начинается с /assets. Этот каталог, в отличие от подкаталога res, позволяет задавать произвольную глубину подкаталогов и произвольные имена файлов и подкаталогов.
По умолчанию проект в студии не содержит данную папку. Чтобы её создать, выберите меню File | New | Folder | Assets Folder.
Чтение файлов
Для доступа к файлам используется класс AssetManager. Пример для чтения текстового файла.
Сначала на Kotlin.
Для доступа к графическому файлу из актива можно использовать следующий код:
Вы также можете загрузить изображение в Bitmap, используя BitmapFactory.decodeStream(), вместо Drawable.
Функция-расширение для Kotlin, которая вернёт Bitmap.
Используем собственные шрифты
Напишем практический пример создания приложения, в котором будут использоваться собственные шрифты, не входящие в стандартную библиотеку шрифтов Android. Для этого мы упакуем нужные шрифты вместе с приложением. Поместим в каталог assets/fonts файлы шрифтов (можно скачать бесплатные шрифты с сайтов 1001 Free Fonts или Urban Fonts ).
В файл разметки добавим пару текстовых полей с заготовленным текстом для вывода этого текста с нашим шрифтом.
В классе активности загрузим объект EditText из ресурсов, а затем создадим объект Typeface, используя вызов статического метода Typeface.createFromAsset(). Метод createFromAsset() принимает два параметра:
- объект AssetManager, который можно получить вызовом метода getAssets()
- путь к файлу актива.
Например, загрузить шрифт для текстового поля EditText можно следующим способом:
Запустив проект, мы увидим в текстовых полях надписи Happy New Year! и Meow!, выводимые нашими собственными шрифтами.
Пример для фрагмента.
Загрузка локальных файлов из активов в WebView
Если нужно загрузить локальные страницы и изображения из активов в WebView, то можно использовать префикс file://android_asset. Подробнее смотрите в статье про WebView.
Получаем список файлов в папке assets
Можно получить список файлов, которые находятся в папке assets. Для быстрой проверки кода я вручную скопировал в папку два файла:
Кроме ваших файлов, также возвращаются странные папки /images, /sounds, /webkit. Учитывайте это в своих проектах. Так как в папке можно создавать собственные подпапки, то можно воспользоваться вспомогательным методом:
Ограничение на размер файлов
По сети гуляет информация, что существует ограничение в 1 Мб на размер файлов в папке assets. При превышении размера у вас может появиться ошибка:
Я не сталкивался, поэтому рецепт решения проблемы не предлагаю.
Источник
Assets Folder in Android Studio
It can be noticed that unlike Eclipse ADT (App Development Tools), Android Studio doesn’t contain an Assets folder in which we usually use to keep the web files like HTML. Assets provide a way to add arbitrary files like text, XML, HTML, fonts, music, and video in the application. If one tries to add these files as “resources“, Android will treat them into its resource system and you will be unable to get the raw data. If one wants to access data untouched, Assets are one way to do it. But the question arises is why in the asset folder? We can do the same things by creating a Resource Raw Folder. So let discuss how the assets folder is different from the Resource Raw folder?
How the asset folder is different from the Resource Raw folder?
In Android one can store the raw asset file like JSON, Text, mp3, HTML, pdf, etc in two possible locations:
- assets
- res/raw folder
Both of them appears to be the same, as they can read the file and generate InputStream as below
But when to use which folder?
Below is some guidance that might be helpful to choose
1. Flexible File Name: (assets is better)
- assets: The developer can name the file name in any way, like having capital letters (fileName) or having space (file name).
- res/raw: In this case, the name of the file is restricted. File-based resource names must contain only lowercase a-z, 0-9, or underscore.
2. Store in subdirectory: (possible in assets)
- assets: If the developer wants to categories the files into subfolders, then he/she can do it in assets like below.
3. Compile-time checking: (possible in res/raw)
- assets: Here, the way to read it into InputStream is given below. If the filename doesn’t exist, then we need to catch it.
- res/raw folder: Here, the way to read it into InputStream is:
So putting a file in the res/raw folder will provide ensure the correct file-name during compile time check.
4. List filenames at runtime: (possible in assets)
- assets: If the developer wants to list all the files in the assets folder, he/she has used the list() function and provide the folder name or ” “ on the root folder as given below.
- res/raw: This is not possible in this folder. The developer has to know the filename during development, and not runtime.
So, in assets, one can read the filename during runtime, list them, and use them dynamically. In res/raw, one needs to code them ready, perhaps in the string resources file.
5. Filename accessible from XML: (possible in res/raw)
So if you need to access your file in any XML, put it in the res/raw folder. Let’s make a table to remember the whole scenario easily.
Res/Raw Folder |
---|
Flexible File Name NO |
Store in subdirectory NO |
Compile-time checking YES |
List filenames at runtime NO |
Filename accessible from XML How to Create Assets Folder in Android Studio?Now let’s discuss how to create an assets folder in the android studio. Below is the step-by-step process to create an assets folder in Android studio. Step 1: To create an asset folder in Android studio open your project in Android mode first as shown in the below image. Step 2: Go to the app > right-click > New > Folder > Asset Folder and create the asset folder. Step 3: Android Studio will open a dialog box. Keep all the settings default. Under the target source set, option main should be selected. and click on the finish button. Step 4: Now open the app folder and you will find the assets folder by the name of “assets” as shown in the below image. Источник Где я могу разместить папку «assets» в Android Studio?Я запутался в папке assets . Он не создается автоматически в Android Studio, и почти все форумы, на которых это обсуждается, говорят об Eclipse. Как настроить каталог активов в Android Studio? ОТВЕТЫОтвет 1Так как Android Studio использует новую систему сборки Gradle, вы должны поставить assets/ внутри исходный набор (например, src/main/assets/ ). В типичном проекте Android Studio у вас будет app/ модуль с main/ sourceset ( app/src/main/ от корня проекта), и поэтому ваши основные активы перейдут в app/src/main/assets/ . Однако: Если вам нужны активы, специфичные для сборки, такие как debug versus release , вы можете создать набор источников для этих ролей (например, app/src/release/assets/ ) В ваших продуктах также могут быть источники с активами (например, app/src/googleplay/assets/ ) В ваших контрольно-измерительных тестах может быть набор androidTest с пользовательскими активами (например, app/src/androidTest/assets/ ), хотя не забудьте запросить InstrumentationRegistry для getContext() , а не getTargetContext() для доступа к этим активам Кроме того, быстрое напоминание: активы доступны только для чтения во время выполнения. Используйте внутреннее хранилище, внешнее хранилище или систему доступа к хранилищу для чтения/записи содержимого. Ответ 2Пусть Android Studio сделает это за вас.
И вуаля! Он создаст папку assets в целевом исходном наборе main . Ответ 3Внутри .iml файла вашего проекта вы увидите следующую строку: Это означает, что папка «активы» уже объявлена для Gradle. Вам нужно будет создать его под src/main/ (я использую Android Studio 0.4.2). Ответ 4Выберите папку app , а затем: File > New > folder > assets Folder , местоположение по умолчанию находится внутри папки /main Ответ 5Это просто, следуйте этим шагам Файл> Создать> Папка> Папка с активами Примечание: приложение необходимо выбрать перед созданием папки. Ответ 6В студии Android вы можете указать, где находятся папки источника, res, assets. для каждого модуля/приложения в файле build.gradle вы можете добавить что-то вроде: Ответ 7Прежде всего, папка «Активы» не будет создаваться автоматически с проектом. Мы должны создать это. Папка с ресурсами: App> src> Assets Пожалуйста, взгляните на простое изображение ниже. Примечание: Для создания папки ресурсов просто нажмите Project => Щелкните правой кнопкой мыши => Выберите New => Folder => Assets. Это создаст папку активов. Ответ 8Просто дважды сдвиньте, затем введите папку активов выберите его для создания в правильном месте Ответ 9Нажмите на основной → новый → каталог → и введите в качестве имени «активы» или. главная → новая → папка → папка ресурсов (см. изображение) Ответ 10Файл> Создать> папка> папка активов Ответ 11Если вы пробовали все свои пули в этом потоке, попробуйте очистить свой проект. В моем случае он работал только после Projet → clean Ответ 12щелкните правой кнопкой мыши на папке приложения- > новой- > папке- > папке с активами- > установите целевой источник-источник- > нажмите кнопку завершения Ответ 13При обновлении до продакшен версии Android Studio, вы можете быть автоматически переведены на новый Android проекта View (см здесь для получения дополнительной информации). Если вы вернетесь обратно к представлению Project или Packages, вы должны увидеть стандартную иерархию папок проекта на основе Gradle. Затем обратитесь к ответу CommonsWare для соответствующего местоположения. Ответ 14Поместите папку активы в путь main/src/assets . Ответ 15Выберите приложение/основную папку, щелкните правой кнопкой мыши и выберите New => Folder => Asset Folder. Это создаст каталог ‘assets’ в main. Выберите основную папку, щелкните правой кнопкой мыши и выберите New => Directory Введите имя как ‘assets’ => Ok. Ответ 16нужен параметр конфигурации для gradle Ответ 17Он может не отображаться на боковой панели, если приложение выбрано. Нажмите раскрывающийся список вверху, в котором говорится об андроиде, и выберите пакеты. вы увидите это. Ответ 18Шаг 1: Перейти к файлам. Шаг 2: Перейдите в папки. Шаг 3: Создать папку активов. В папке Assets просто поместите шрифты и используйте их при необходимости. Ответ 19В Android Studio щелкните папку app , затем папку src , а затем папку main . Внутри основной папки вы можете добавить папку с ресурсами. Ответ 20Либо создайте каталог в /app/src/main, либо используйте studio File-> New → Folder → Assets Folder. Источник Где я могу разместить папку «активы» в Android Studio?Я запутался в . Он не приходит автоматически созданный в Android Studio, и почти все форумы, в которых это обсуждается, говорят о Eclipse. как можно настроить каталог активов в Android Studio? 19 ответов:в типичном проекте Android Studio у вас будет app/ модуль, с main/ sourceset ( app/src/main/ выкл из корня проекта), и поэтому ваши основные активы будут входить app/src/main/assets/ . Однако: Если вам нужны активы, специфичные для сборки, такие как debug versus release , вы можете создать исходные наборы для этих ролей (например,. app/src/release/assets/ ) ваши вкусы продукта также могут иметь исходные наборы с активами (например, app/src/googleplay/assets/ ) ваши тесты инструментирования могут иметь androidTest sourceset с пользовательскими активами (например, app/src/androidTest/assets/ ), но будьте уверены, чтобы попросить InstrumentationRegistry на getContext() , а не getTargetContext() , чтобы получить доступ к этим активам кроме того, быстрое напоминание: активы предназначены только для чтения во время выполнения. Используйте внутренний накопитель,внешний накопитель или структура доступа к хранилищу для чтения/записи содержимого.
и вуаля! Это создаст assets папка в main целевого источника.
это означает, что папка «активы» уже объявлена для Gradle. Вам нужно будет создать его под src/main/ (Я использую Android Studio 0.4.2). File > New > folder > assets Folder , по умолчанию находится внутри /main папку File > New > folder > assets Folder Примечание: приложение должно быть выбрано перед созданием папки.
расположение папки активов: — приложение — > src — >активы пожалуйста, посмотрите на два простых изображения: Введите описание изображения здесь Примечание: Для краетинга папки активов просто нажмите на проект щелкните правой кнопкой мыши выберите Создать затем папку, а затем активы, он будет создавать папку активов.
в папке Assets просто поместите шрифты и используйте их при необходимости.
Источник |