Java добавить файл в проект
Ресурс в приложении Android представляет собой файл, например, файл разметки интерфейса или некоторое значение, например, простую строку. То есть ресурсы представляют собой и файлы разметки, и отдельные строки, и звуковые файлы, файлы изображений и т.д. Все ресурсы находятся в проекте в каталоге res . Для различных типов ресурсов, определенных в проекте, в каталоге res создаются подкаталоги. Поддерживаемые подкаталоги:
animator/ : xml-файлы, определяющие анимацию свойств
anim/ : xml-файлы, определяющие tween-анимацию
color/ : xml-файлы, определяющие список цветов
drawable/ : Графические файлы ( .jpg , .jpg , .jpg )
mipmap/ : Графические файлы, используемые для иконок приложения под различные разрешения экранов
layout/ : xml-файлы, определяющие пользовательский интерфейс приложения
menu/ : xml-файлы, определяющие меню приложения
raw/ : различные файлы, которые сохраняются в исходном виде
values/ : xml-файлы, которые содержат различные используемые в приложении значения, например, ресурсы строк
xml/ : Произвольные xml-файлы
font/ : файлы с определениями шрифтом и расширениями .ttf, .otf или .ttc, либо файлы XML, который содержат элемент
В общей сложности мы можем определить следующие типы ресурсов:
элемент в файле
strings.xml или arrays.xml
Логические значения Boolean
Массив целых чисел
Файлы с расширением jpg и png
Файл xml с произвольным названием
Файл xml с произвольным названием
Файл xml с произвольным названием
Файл xml с произвольным названием
Файл xml с произвольным названием
Бинарные и текстовые ресурсы
Файлы мультимедиа (mp3, mp4), текстовые и другие файлы
Разметка графического интерфейса
Файл xml с произвольным названием
К примеру, если мы возьмем стандартный проект Android Studio, который создается по умолчанию, то там можем заметить наличие уже нескольких папок для различных ресурсов в каталоге res :
По умолчанию здесь есть каталоги не для всех типов ресурсов, которые использоваться в Android, однако при необходимости мы можем добавить в папку res нужный каталог, а в него затем поместить ресурс.
Когда происходит компиляция проекта сведения обо всех ресурсах добавляются в специальный файл R.jar , который затем используется при работе с ресурсами
Применение ресурсов
Существует два способа доступа к ресурсам: в файле исходного кода и в файле xml.
Ссылка на ресурсы в коде
Тип ресурса в данной записи ссылается на одно из пространств (вложенных классов), определенных в файле R.java, которые имеют соответствующие им типы в xml:
R.drawable (ему соответствует тип в xml drawable )
Например, для установки ресурса activity_main.xml в качестве графического интерфейса в коде MainActivity в методе onCreate() есть такая строка:
Через выражение R.layout.activity_main мы и ссылаемся на ресурс activity_main.xml, где layout - тип ресурса, а activity_main - имя ресурса.
Подобным образом мы можем получать другие ресурсы. Например, в файле res/values/strings.xml определен ресурс app_name:
Этот ресурс ссылается на строку. Чтобы получить ссылку на данный ресурс в коде java, мы можем использовать выражение R.string.app_name .
Create a new Java class
In the Project tool window ( Alt+1 ), right-click the node in which you want to create a new class and select New | Java Class .
Alternatively, select the node, press Alt+Insert , and select Java Class .
Name the new class and press Enter .
Follow the Java naming convention as you create new classes.
Together with the file, IntelliJ IDEA automatically generates the class declaration.
This is done by means of file templates. Depending on the type of the file that you create, the IDE inserts initial code and formatting that is expected to be in all files of that type. For more information on how to use and configure templates, refer to File templates.
You can create a class together with a package. To do so, press Alt+Insert in the Project tool window, select Java Class , and specify the fully qualified name of the class, for example: com.example.helloworld.HelloWorld . For more information, refer to Create a package and a class.
Create a new empty file
In the Project tool window ( Alt+1 ), right-click the node in which you want to create a new file and click New | File .
Alternatively, select the node, press Alt+Insert , and click File .
Name the new file and specify its extension, for example: File.js , and press Enter .
If the extension you have specified is not associated with any of the file types recognized by IntelliJ IDEA, the Register New File Type Association dialog is displayed. In this dialog, you can associate the extension with one of the recognized file types.
Create a new directory
In the Project tool window ( Alt+1 ), right-click the node in which you want to create a new directory and select New | Directory .
Alternatively, select the node, press Alt+Insert , and click Directory .
Name the new directory and press Enter .
If you want to create several nested directories, specify their names separated with slashes, for example: folder/new-folder .
Import items
IntelliJ IDEA 15 и 2016
Файл > Структура проекта .
или нажмите Ctrl + Alt + Shift + S
Настройки проекта > Модули > Зависимости > знак « + »> JAR или каталоги .
Выберите файл jar и нажмите ОК, затем нажмите другую кнопку ОК для подтверждения.
Вы можете просмотреть файл jar в папке «Внешние библиотеки».
Просто скопируйте и вставьте файл .jar в папку «libs» (или всю папку «libs»), щелкните его правой кнопкой мыши и выберите из списка опцию «Добавить как библиотеку». Все остальное он сделает .
Если вы строите свой проект с помощью gradle, вам просто нужно добавить одну строку в зависимости в build.gradle:
А затем добавьте папку в корневой проект или модуль:
Затем вы бросаете туда свои банки, и все готово :-)
Вы добавляете их как библиотеки в свой модуль.
У меня обычно есть каталог /lib в моем источнике. Я помещаю туда все нужные мне JAR, добавляю / lib в качестве библиотеки и делаю ее частью зависимостей моего модуля.
Обновление 2018: сейчас я использую IntelliJ 2017/2018.
Я полностью привержен Maven и Nexus для управления зависимостями.
Так прошел мир. Каждый известный мне проект Java с открытым исходным кодом использует Maven или Gradle. Вы тоже должны.
Я использую этот метод, и он хорошо работает:
1- Скопируйте и вставьте файлы .jar в папку libs .
2- Добавьте compile fileTree(dir: 'libs', include: '*.jar') в dependencies в build.gradle , тогда все банки в папке libs будут включены ..
3- Щелкните правой кнопкой мыши папку libs и выберите из списка опцию «Добавить как библиотеку».
Библиотеки нельзя напрямую использовать в любой программе, если они не добавлены должным образом в файлы Gradle проекта.
Это легко сделать в умных IDE, таких как inteli J.
1) Сначала в качестве соглашения добавьте имена папок libs в файл src вашего проекта. (это легко сделать с помощью самой IDE)
2) затем скопируйте или добавьте файл библиотеки (например, файл .jar) в папку с именем libs.
3) теперь вы можете увидеть файл библиотеки внутри папки libs. Теперь щелкните файл правой кнопкой мыши и выберите «Добавить как библиотеку». И это исправит все соответствующие файлы в вашей программе, и библиотека будет напрямую доступна для вашего использования.
Пожалуйста, обратите внимание:
Каждый раз, когда вы добавляете библиотеки в проект, убедитесь, что проект поддерживает библиотеку.
Здесь есть отличная помощь. Однако я все еще не мог заставить его работать, несмотря на правильную загрузку JAR. Позже я узнал, что случайно создал модуль в файловой структуре вместо обычной папки, и именно этот модуль был предварительно выбран в настройках проекта.
Файл -> Структура проекта -> Модули -> (выберите подходящий модуль, если у вас их больше) -> Зависимости -> + -> JAR или библиотеки
Хотя я согласен с предыдущими ответами, важно отметить, как получить доступ к коду этих внешних библиотек.
Например, чтобы получить доступ к классу во внешней библиотеке, вы захотите использовать ключевое слово import , за которым следует имя внешней библиотеки, продолжая с точечной нотацией до тех пор, пока не будет достигнут желаемый класс. .
Посмотрите на изображение ниже, чтобы увидеть, как я импортирую класс CodeGenerationException из библиотеки quickfixj.
Метод getResources
Для получения ресурсов в классе Activity мы можем использовать метод getResources() , который возвращает объект android.content.res.Resources . Но чтобы получить сам ресурс, нам надо у полученного объекта Resources вызвать один из методов. Некоторые из его методов:
getString() : возвращает строку из файла strings.xml по числовому идентификатору
getDimension() : возвращает числовое значение - ресурс dimen
getDrawable() : возвращает графический файл в виде объекта Drawable
getBoolean() : возвращает значение boolean
getColor() : возвращает определение цвета
getColorStateList() : возвращает объект ColorStateList - набор цветов
getFont() : возвращает определение шрифта в виде объекта Typeface
getFloat() : возвращает значение float
getLayout() : возвращает объект XmlResourceParser, связанный с файлом layout
Это только некоторые методы. Но все они в качестве параметра принимают идентификатор ресурса, который надо получить. Вкратце рассмотрим их применение. Возьмем тот же файл res/values/strings.xml в качестве источника ресурсов, который в моем случае выглядит так:
И изменим код MainActivity:
Здесь, используя метод getResources() получаем все ресурсы и затем используем их для устаноки значений свойств графических элементов. При запуске приложения мы увидим применение полученных ресурсов:
Подобным образом мы можем программно получать и другие ресурсы и использоват их в приложении. Однако следует отметить, что в данном случае нам не нужно использовать метод getResources() и вообще производить какие-то определенные действия по получению ресурса, поскольку метод setText() класса TextView поддерживает прямую установку текста по идентификатору ресурса:
Once you have created a project, you can start adding new items: create directories and packages, add new classes, import resources, and extend your project by adding more modules.
Работа с файлами
Работа с файлами аналогична работе с каталога. Например, получим данные по одному из файлов и создадим еще один файл:
При создании нового файла метод createNewFile() в случае неудачи выбрасывает исключение IOException , поэтому нам надо его отлавливать, например, в блоке try. catch, как делается в примере выше.
Одним из наиболее распространенных источников ресурсов являются файлы изображений. Android поддерживает следующие форматы файлов: .jpg (предпочтителен), .jpg (приемлем), .jpg (нежелателен). Для графических файлов в проекте уже по умолчанию создана папка res/drawable . По умолчанию она уже содержит ряд файлов - пару файлов иконок:
При добавлении графических файлов в эту папку для каждого из них Android создает ресурс Drawable . После этого мы можем обратиться к ресурсу следующим образом в коде Java:
Например, добавим в проект в папку res/drawable какой-нибудь файл изображения. Для этого скопируем на жестком диске какой-нибудь файл с расширением png или jpg и вставим его в папку res/drawable (для копирования в проект используется простой Copy-Paste)
Далее нам будет предложено выбрать папку - drawable или drawable-24 . Для добавления обычных файлов изображений выберем drawable :
Здесь сразу стоит учесть, что файл изображения будет добавляться в приложение, тем самым увеличивая его размер. Кроме того, большие изображения отрицательно влияют на производительность. Поэтому лучше использовать небольшие и оптимизрованные (сжатые) графические файлы. Хотя, также стоит отметить, что все файлы изображений, которые добавляются в эту папку, могут автоматически оптимизироваться с помощью утилиты aapt во время построения проекта. Это позволяет уменьшить размер файла без потери качества.
При копировании файла нам будет предложено установить для него новое имя.
Можно изменить название файла, а можно оставить так как есть. В моем случае файл называется dubi2.jpg . И затем нажмем на кнопку Refactor. И после этого в папку drawable будет добавлен выбранный нами файл изображения.
Для работы с изображениями в Android можно использовать различные элементы, но непосредственно для вывода изображений предназначен ImageView . Поэтому изменим файл activity_main.xml следующим образом:
В данном случае для отображения файла в ImageView у элемента устанавливается атрибут android:src . В его значении указывается имя графического ресурса, которое совпадает с именем файла без расширения. И после этого уже в Preview или в режиме дизайнере в Android Studio можно будет увидеть применение изображения, либо при запуске приложения:
Если бы мы создавали ImageView в коде java и из кода применяли бы ресурс, то activity могла бы выглядеть так:
В данном случае ресурс drawable напрямую передается в метод imageView.setImageResource() , и таким образом устанавливается изображение. В результате мы получим тот же результат.
Однако может возникнуть необходимость как-то обработать ресурс перед использованием или использовать его в других сценариях. В этом случае мы можем сначала получить его как объект Drawable и затем использовать для наших задач:
Для получения ресурса применяется метод ResourcesCompat.getDrawable() , в который передается объект Resources, идентификатор ресурса и тема. В данном случае тема нам не важна, поэтому для нее передаем значение null. Возвращается ресурс в виде объекта Drawable :
Затем, например, можно также передать ресурс объекту ImageView через его метод setImageDrawable()
При создании нового проекта Java в IntelliJ IDEA создаются следующие каталоги и файлы:
Я хочу настроить IntelliJ IDEA для включения моих JAR зависимостей в ./lib/*.jar в проект. Как правильно добиться этого в IntelliJ IDEA?
Шаги по добавлению внешних jar-файлов в IntelliJ IDEA :
- Нажмите Файл на панели инструментов.
- Выберите параметр Структура проекта ( CTRL + SHIFT + ALT + S в Windows / Linux, ⌘ + ; в Mac OS X)
- На левой панели выберите Модули .
- Выберите вкладку Зависимости .
- Выберите значок +
- Выберите вариант 1 JAR или каталог .
Create a new package
Packages in Java are used for grouping classes that belong to the same category or provide similar functionality, for structuring and organizing large applications with hundreds of classes.
In the Project tool window ( Alt+1 ), right-click the node within the Sources Root or Test Sources Root in which you want to create a new package, and click New | Package .
Alternatively, select the node, press Alt+Insert , and click Package .
Name the new package and press Enter .
Write package names in lowercase letters. There are some other naming conventions for packages in Java that you should follow.
Применение ресурсов
Существует два способа доступа к ресурсам: в файле исходного кода и в файле xml.
Ссылка на ресурсы в коде
Тип ресурса в данной записи ссылается на одно из пространств (вложенных классов), определенных в файле R.java, которые имеют соответствующие им типы в xml:
R.drawable (ему соответствует тип в xml drawable )
Например, для установки ресурса activity_main.xml в качестве графического интерфейса в коде MainActivity в методе onCreate() есть такая строка:
Через выражение R.layout.activity_main мы и ссылаемся на ресурс activity_main.xml, где layout - тип ресурса, а activity_main - имя ресурса.
Подобным образом мы можем получать другие ресурсы. Например, в файле res/values/strings.xml определен ресурс app_name:
Этот ресурс ссылается на строку. Чтобы получить ссылку на данный ресурс в коде java, мы можем использовать выражение R.string.app_name .
Create new items
Example: Import an image
Images belong to resource files. They should be stored in a dedicated folder – Resources Root. If you don't have this folder in your project, create a new directory, right-click it in the Project tool window, and select Mark Directory as | Resources Root .
Copy the file in the file manager and then paste in to the folder with resource files in the IDE Project tool window.
In the dialog that opens, edit the filename and the target location if necessary. Click OK .
Right-click the pasted image in the Project tool window and select Copy | Path From Source Root .
In the class in which you want to use the image, place the caret at the necessary line and press Ctrl+V to paste the path to the image.
Run the class to make sure that the image is inserted correctly.
Доступ в файле xml
Нередко возникает необходимость ссылаться на ресурс в файле xml, например, в файле, который определяет визуальный интерфейс, к примеру, в activity_main.xml. Ссылки на ресурсы в файлах xml имеют следующую формализованную форму: @[имя_пакета:]тип_ресурса/имя_ресурса
имя_пакета представляет имя пакета, в котором ресурс находится (указывать необязательно, если ресурс находится в том же пакете)
тип_ресурса представляет подкласс, определенный в классе R для типа ресурса
имя_ресурса имя файла ресурса без расширения или значение атрибута android:name в XML-элементе (для простых значений).
Например, мы хотим вывести в элемент TextView строку, которая определена в виде ресурса в файле strings.xml:
В данном случае свойство text в качестве значения будет получать значение строкового ресурса app_name.
Import an existing module
You can import a module to your project by adding the .iml file from another project:
From the main menu, select File | New | Module from Existing Sources .
In the dialog that opens, specify the path the .iml file of the module that you want to import, and click Open .
By doing so, you are attaching another module to the project without physically moving any files. If you don't need the modules to be located in one folder, the module import is finished, and you can start working with the project normally.
If you want the modules in the same folder, in the Project tool window, drag the imported module to the top-level directory. In this case, the contents of the imported module will be physically transferred to your project's folder.
Класс File, определенный в пакете java.io, не работает напрямую с потоками. Его задачей является управление информацией о файлах и каталогах. Хотя на уровне операционной системы файлы и каталоги отличаются, но в Java они описываются одним классом File.
В зависимости от того, что должен представлять объект File - файл или каталог, мы можем использовать один из конструкторов для создания объекта:
Класс File имеет ряд методов, которые позволяют управлять файлами и каталогами. Рассмотрим некоторые из них:
boolean createNewFile() : создает новый файл по пути, который передан в конструктор. В случае удачного создания возвращает true, иначе false
boolean delete() : удаляет каталог или файл по пути, который передан в конструктор. При удачном удалении возвращает true.
boolean exists() : проверяет, существует ли по указанному в конструкторе пути файл или каталог. И если файл или каталог существует, то возвращает true, иначе возвращает false
String getAbsolutePath() : возвращает абсолютный путь для пути, переданного в конструктор объекта
String getName() : возвращает краткое имя файла или каталога
String getParent() : возвращает имя родительского каталога
boolean isDirectory() : возвращает значение true, если по указанному пути располагается каталог
boolean isFile() : возвращает значение true, если по указанному пути находится файл
boolean isHidden() : возвращает значение true, если каталог или файл являются скрытыми
long length() : возвращает размер файла в байтах
long lastModified() : возвращает время последнего изменения файла или каталога. Значение представляет количество миллисекунд, прошедших с начала эпохи Unix
String[] list() : возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге
File[] listFiles() : возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге
boolean mkdir() : создает новый каталог и при удачном создании возвращает значение true
boolean renameTo(File dest) : переименовывает файл или каталог
Работа с каталогами
Если объект File представляет каталог, то его метод isDirectory() возвращает true . И поэтому мы можем получить его содержимое - вложенные подкаталоги и файлы с помощью методов list() и listFiles() . Получим все подкаталоги и файлы в определенном каталоге:
Теперь выполним еще ряд операций с каталогами, как удаление, переименование и создание:
Create a new module
Modules allow you to combine several technologies and frameworks in one application. In IntelliJ IDEA, you can create several modules in one project and each of them can be responsible for its own framework.
Select the top-level directory in the Project tool window and press Alt+Insert or select New | Module from the context menu.
The New Module wizard opens.
From the list on the left, select a module type. Name the new module.
From the Language list, select the language that you want to use in your application.
If you want to use a language that is not available in IntelliJ IDEA out of the box (for example, Python or PHP), click the button and select the necessary option.
The IDE will open a dialog in which you can select and install the necessary language plugin. After that, you can close the dialog and keep configuring the new module.
Select the build system that you want to use in your project: the native IntelliJ builder, Maven, or Gradle.
For Gradle, you will also need to select a language for the build script: Groovy or Kotlin.
Select a JDK that you want to use from the JDK list. You can use the project SDK or specify a new one.
For more information on modules in IntelliJ IDEA, refer to Modules.
Import files
You can import files to your project using any of the following ways:
Drag the file from your system file manager to the necessary node in the Project tool window.
Copy the file in the system file manager by pressing Ctrl+C and then paste in to the necessary node in the IDE Project tool window by pressing Ctrl+V .
Manually move the file to the project folder in your system file manager.
Читайте также: