- Assets (Активы)
- Чтение файлов
- Используем собственные шрифты
- Загрузка локальных файлов из активов в WebView
- Получаем список файлов в папке assets
- Ограничение на размер файлов
- Где я могу поместить папку «assets» в Android Studio?
- Import and preview 3D assets
- Import a new 3D asset
- Update a previously imported 3D asset
- Gradle asset definitions
- Create the Renderable
- Using custom materials
- Где разместить папку «активы» в 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» в Android Studio?
Я запутался в папке с assets . Он не создается автоматически в Android Studio, и почти все форумы, на которых это обсуждается, говорят об Eclipse.
Как настроить каталог активов в Android Studio?
Поскольку Android Studio использует новую систему сборки на основе Gradle , вы должны размещать assets/ внутри исходных наборов (например, src/main/assets/ ).
В типичном проекте Android Studio у вас будет app/ модуль с main/ исходным кодом ( app/src/main/ off от корня проекта), и поэтому ваши основные активы будут включены в app/src/main/assets/ , Однако:
Если вам нужны активы, специфичные для сборки, такие как debug или release , вы можете создавать исходные каталоги для этих ролей (например, app/src/release/assets/ )
В ваших продуктах также есть источники с активами (например, app/src/googleplay/assets/ )
Ваши контрольные тесты могут иметь androidTest androidTest с настраиваемыми ресурсами (например, app/src/androidTest/assets/ ), хотя обязательно обращайтесь к InstrumentationRegistry для getContext() , а не getTargetContext() , чтобы получить доступ к этим активам
Кроме того, быстрое напоминание: активы доступны только для чтения во время выполнения. Используйте внутреннее хранилище , внешнее хранилище или платформу доступа к хранилищу для чтения / записи.
Пусть Android Studio сделает это за вас.
- В Android Studio ( 1.0 и выше ) щелкните правой кнопкой мыши
И перейдите в Assets Folder .
- На следующем экране просто нажмите « Finish .
И вуаля! Он создаст папку с assets в main целевом исходном наборе.
Заглянув внутрь .iml-файла вашего проекта, вы увидите следующую строку:
Это означает, что папка «активы» уже объявлена для Gradle. Вам нужно будет создать его под управлением src/main/ (я использую Android Studio 0.4.2).
Выберите папку app а затем:
File > New > folder > assets Folder ,
По умолчанию находится внутренняя /main папка
Просто следуйте этому
Файл> Создать> папка> активы Папка
Примечание. Перед созданием папки необходимо выбрать приложение.
В студии Android вы можете указать, где находятся папки источника, res, assets. Для каждого модуля / приложения в файле build.gradle вы можете добавить что-то вроде:
Если вы пробовали все свои пули в этом потоке, попробуйте очистить свой проект. В моем случае он работал только после Projet -> clean
Щелкните правой кнопкой мыши на папке приложения-> новой-> папке-> Папки с активами-> установите Целевой источник-источник-> нажмите кнопку завершения
При обновлении до версии Android Studio вы можете автоматически переключиться на новый проект Android (см. Здесь для получения дополнительной информации). Если вы перейдете к представлению «Проект» или «Пакеты», вы увидите стандартную иерархию папок проекта на основе градиента. Затем обратитесь к ответу CommonsWare для соответствующего местоположения.
Нужен параметр конфигурации для градиента
Я надеюсь, что это сработает
Нажмите на главный → новый каталог → имя каталога «активы»
Поместите папку активов в основной / src / assets.
Он может не отображаться на боковой панели, если приложение выбрано. Нажмите на раскрывающееся меню вверху, в котором говорится об андроиде, и выберите пакеты. Вы увидите это.
В Android Studio щелкните папку app , затем папку src , а затем main папку. Внутри основной папки вы можете добавить папку с ресурсами.
Источник
Import and preview 3D assets
Learn how to import 3D models, convert them into Sceneform format, and preview them in Android Studio.
Import a new 3D asset
Sceneform supports 3D assets in the following formats:
- OBJ
- glTF (animations not supported)
- FBX, with or without animations.
Follow these steps to import a new 3D asset:
Verify that your project’s app folder contains a sampledata folder.
To create the folder, right-click on the app folder in the Project window, then select New > Sample Data Directory.
The sampledata folder is part of your Android Studio project, but its contents will not be included in your APK.
Copy your 3D model source asset file ( *.obj , *.fbx , or *.gltf ), and all of its dependencies ( *.mtl , *.bin , *.png , *.jpg , etc.) into the sampledata folder.
Do not copy these source files into your project’s assets or res folder, as this will cause them to be included in your APK unnecessarily.
Right click the 3D model source asset and select Import Sceneform Asset to begin the import process.
The values are used by the sceneform.asset() entry in the app’s build.gradle , and determine where the *.sfa and *.sfb files will be generated in your project.
If you’re importing a model for the first time, use the default values.
Field | Description |
---|---|
Source Asset Path | Filename of the OBJ, FBX, or glTF 3D model asset to import. |
Material Path | default tells Sceneform’s to use the built-in default material or the path to a custom material *.mat file. |
.sfa Output Path | Use the default, or specify another path under the sampledata folder. The .sfa file is generated if missing. It can be modified to control some aspects of the import process. This ensures that *.sfa isn’t included in your APK unncessarily. |
.sfb Output Path | By default the src/main/assets/ folder is used, which allows the use of arbitrary asset filenames. If the filename (without file extension) is a valid resource identifier (e.g. R.raw.filename ), then you can instead use the src/main/res/raw/ folder if you prefer. See Android’s App resources overview for more on using the assets/ and res/ folders in your app. If you are importing *.fbx animation files, click the plus sign (+) and add the rest of the files individually. Click Finish to begin the import process. To import your asset, the plugin does the following: Adds the Sceneform gradle plugin to your project’s build.gradle if it doesn’t already exist: Updates your app’s build.gradle file to include an apply plugin line, and a sceneform.asset() entry for the newly imported asset: These new entries in the app’s build.gradle create two gradle tasks: createAsset- creates a Sceneform asset definition ( *.sfa ) file if it does not yet exist. This task will not overwrite an existing *.sfa file, which means any modifications you make to the SFA file after import won’t be overwritten. The *.sfa file is a text file that contains a complete, human-readable description of the asset’s import settings. It references the models and textures in your source asset, and also defines materials by providing material parameters for Sceneform’s physically based materials. compileAsset- compiles the *.sfa file into a Sceneform binary asset ( *.sfb ) file. This *.sfb file gets built into your app’s APK and is loaded at runtime to create the renderable. Opens the *.sfa in a text window and the *.sfb in a Viewer window. Update a previously imported 3D assetWhen you update a previously imported OBJ, FBX, or glTF model source asset file ( *.obj , *.fbx , or *.gltf ), the corresponding sceneform.asset() entry in your app’s build.gradle causes the plugin to automatically generate an updated *.sfb file, based on the current *.sfa parameters. To iterate on the parameters for an already imported asset:
If you are updating a previously imported asset that includes animation data, import each of the updated *.fbx files individually using the plus (+) sign in the Animation Files section of the import dialog. Gradle asset definitionsThe import process adds any *.fbx animation files at the end of the build.gradle file. Create the RenderableOnce the asset is compiled into *.sfb format, you can build a ModelRenderable and attach it to a node in the scene as follows: Using custom materialsSceneform’s default materials make it easy for developers to get great looking results. You can also use custom materials to deeply customize the way your assets look. To assign a custom material to your asset: Create a custom material definition ( *.mat ) file, using the [Custom Material Reference](/sceneform/develop/custom-material as a guide. Apply the custom material to the asset: When importing a new asset:
To update a previously imported asset: If the *.sfa contents have not been customized, delete the existing *.sfa and *.sfb files and the sceneform.asset() entry in the app’s build.gradle , then reimport the asset. This ensures that the regenerated *.sfa attributes and material parameters will match the ones supported by your custom material. To preserve any *.sfa customizations you’ve made, open the *.sfa file and change the source attribute to the path to your custom material *.mat file, then manually adjust the *.sfa attributes and material parameters to match your custom material. Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Источник Где разместить папку «активы» в Android Studio?Я запутался в . Он не создается автоматически в Android Studio, и почти все форумы, на которых это обсуждается, говорят о Eclipse. как можно настроить каталог активов в Android Studio? 19 ответовтак как Android Studio использует новая система сборки на основе Gradle, вы должны быть положить assets/ внутри исходных наборов (например, src/main/assets/ ). в типичном проекте Android Studio у вас будет app/ модуль, с main/ sourceset ( app/src/main/ off of the project root), и поэтому ваши основные активы будут входить в app/src/main/assets/ . Однако: Если вам нужны активы, специфичные для сборки, такие как debug versus release , вы можете создать sourcesets для этих ролей (электронная.г,. app/src/release/assets/ ) ваш продукт ароматизаторы также могут иметь sourcesets с активами (например, app/src/googleplay/assets/ ) ваши тесты инструментирования могут иметь androidTest sourceset с пользовательскими активами (например, app/src/androidTest/assets/ ), хотя обязательно спросите InstrumentationRegistry на getContext() , а не getTargetContext() , чтобы получить доступ к этим активам кроме того, быстрое напоминание: активы предназначены только для чтения во время выполнения. Использовать внутренний накопитель, внешний накопитель или платформа доступа к хранилищу для чтения/записи содержимого. пусть Android Studio сделает это за вас.
и вуаля! Это создаст assets папка в main целевого источника. заглянув внутрь .iml файл вашего проекта вы увидите следующую строку: это означает, что папка «assets» уже объявлена для Gradle. Вам нужно будет создать его под src/main/ (Я использую Android Studio 0.4.2). выберите и затем: File > New > folder > assets Folder , по умолчанию находится внутри /main папку просто следовать этому Файл > Создать > Папка > папка активов Примечание: приложение должно быть выбрано перед созданием папки. в Android studio вы можете указать, где находятся папки source, res, assets. для каждого модуля / приложения в сборке.файл Gradle вы можете добавить что-то вроде: Если вы пробовали все свои пули в этом потоке напрасно, попробуйте очистить свой проект . В моем случае это сработало только после Projet -> clean щелкните правой кнопкой мыши на App folder — >new — >folder — >Assets folder — >set Target Source set — >нажмите кнопку Готово Файл > Создать > Папка > папка активов
расположение папки активов: — App — >src — >assets пожалуйста, посмотрите на два простых изображения: Введите описание изображения здесь Примечание: для папки craeting assets просто нажмите на проект правой кнопкой мыши выберите «Создать», затем папку «активы», она создаст папку «активы». при обновлении до версии Android Studio вы можете автоматически переключиться на новый вид проекта Android (см. здесь для получения дополнительной информации). Если вы вернетесь в представление проект или пакеты, вы увидите стандартную иерархию папок проекта на основе Gradle. Тогда обратитесь к ответ CommonsWare для соответствующего местоположения. он может не отображаться на боковой панели, если выбрано приложение. Нажмите раскрывающийся список в верхней части, которая говорит android и выберите пакеты. тогда вы его увидите. поставить активы на main/src/assets путь. нужно настроить параметр для gradle нажмите на main → new directory → имя каталога «активы» Шаг 1: Перейдите к файлам. Шаг 2 : Перейдите к папкам. Шаг 3: Создайте Папку Assets. в папке Assets просто поместите шрифты и используйте их при необходимости. В Android Studio нажмите кнопку , потом src папка, а затем . Внутри основной папки можно добавить папку assets. либо создайте каталог в /app/src / main, либо используйте studio File-> New -> Folder — > Assets Folder. двумя способами 1. выберите app / main folder, щелкните правой кнопкой мыши и выберите New => Folder => Asset Folder Он создаст каталог «активы» в main
Источник |