Добавить свою картинку андроид студио

ImageView

Общая информация

Компонент ImageView предназначен для отображения изображений. Находится в разделе Widgets.

Для загрузки изображения в XML-файле используется атрибут android:src, в последнее время чаще используется атрибут app:srcCompat.

ImageView является базовым элементом-контейнером для использования графики. Можно загружать изображения из разных источников, например, из ресурсов программы, контент-провайдеров. В классе ImageView существует несколько методов для загрузки изображений:

  • setImageResource(int resId) — загружает изображение по идентификатору ресурса
  • setImageBitmap(Bitmap bitmap) — загружает растровое изображение
  • setImageDrawable(Drawable drawable) — загружает готовое изображение
  • setImageURI(Uri uri) — загружает изображение по его URI

Метод setImageResource()

Сначала нужно получить ссылку на ImageView, а затем используется идентификатор изображения из ресурсов:

Метод setImageBitmap()

Используется класс BitmapFactory для чтения ресурса изображения в объект Bitmap, а затем в ImageView указывается полученный Bitmap. Могут быть и другие варианты.

Метод setImageDrawable()

Если у вас есть готовое изображение, например, на SD-карте, то его можно использовать в качестве объекта Drawable.

Drawable можно получить и из ресурсов, хотя такой код выглядит избыточным, если можно сразу вызвать setImageResource().

Метод setImageURI()

Берётся URI файла изображения и используется в качестве источника изображения. Этот способ годится для работы с локальными изображениями.

Загружаем Drawable через URI.

Другие методы

Также вам часто придется использовать методы, связанные с размерами и масштабированием: setMaxHeight(), setMaxWidth(), getMinimunHeight(), getMinimunWidth(), getScaleType(), setScaleType().

Масштабирование через свойство Scale Type

Для масштабирования картинки в ImageView есть свойство Scale Type и соответствующий ему атрибут android:scaleType и перечисление ImageView.ScaleType.

  • CENTER
  • CENTER_CROP
  • CENTER_INSIDE
  • FIT_CENTER
  • FIT_START
  • FIT_END
  • FIT_XY
  • MATRIX

Чтобы увидеть разницу между разными режимами, желательно использовать большую картинку, превосходящую по ширине экрана устройства. Допустим, у нас есть простенькая разметка:

Для наглядности я задал красный цвет для фона ImageView.

Режим android:scaleType=»center» выводит картинку в центре без масштабирования. Если у вас будет картинка большего размера, то края могут быть обрезаны.

Режим android:scaleType=»centerCrop» также размещает картинку в центре, но учитывает ширину или высоту контейнера. Режим попытается сделать так, чтобы ширина (или высота) картинки совпала с шириной (или высотой) контейнера, а остальное обрезается.

Режим android:scaleType=»centerInside» масштабирует картинку, сохраняя пропорции. Можно увидеть задний фон контейнера, если его размеры отличаются от размера картинки.

Режим android:scaleType=»fitCenter» (по умолчанию) похож на предыдущий, но может не сохранять пропорции.

Если выбрать режим android:scaleType=»fitStart», то картинка прижимается к левому верхнему углу и таким образом заполняет верхнюю половину контейнера.

Значение android:scaleType=»fitEnd» сместит картинку в нижнюю часть контейнера.

Режим android:scaleType=»fitXY» растягивает/сжимает картинку, чтобы подогнать её к контейнеру. Может получиться вытянутая картинка, поэтому будьте осторожны.

Последний атрибут android:scaleType=»matrix» вывел картинку без изменений в левом верхнем углу с обрезанными краями.

Атрибут android:adjustViewBounds=»true»

При использовании атрибута scaleType=»fitCenter» из предыдущего примера Android вычисляет размеры самой картинки, игнорируя размеры ImageView. В этом случае ваша разметка может «поехать». Атрибут adjustViewBounds заставляет картинку подчиниться размеру компонента-контейнера. В некоторых случаях это может не сработать, например, если у ImageView установлен атрибут layout_width=»0dip». В таком случае поместите ImageView в RelativeLayout или FrameLayout и используйте значение 0dip для этих контейнеров.

Загрузка изображения из галереи

Предположим, у вас есть на экране компонент ImageView, и вы хотите загрузить в него какое-нибудь изображение из галереи по нажатию кнопки:

Читайте также:  Как удалить майнер с андроида

Намерение ACTION_PICK вызывает отображение галереи всех изображений, хранящихся на телефоне, позволяя выбрать одно изображение. При этом возвращается адрес URI, определяющий местоположение выбранного изображения. Для его получения используется метод getData(). Далее для преобразования URI-адреса в соответствующий экземпляр класса Bitmap используется специальный метод Media.getBitmap(). И у нас появляется возможность установить изображение в ImageView при помощи setImageBitmap().

На самом деле можно поступить ещё проще и использовать метод setImageURI.

Сравните с предыдущим примером — чувствуете разницу? Тем не менее, приходится часто наблюдать подобный избыточный код во многих проектах. Это связано с тем, что метод порой кэширует адрес и не происходит изменений. Рекомендуется использовать инструкцию setImageURI(null) для сброса кэша и повторный вызов метода с нужным Uri.

В последних версиях системных эмуляторов два примера не работают. Проверяйте на реальных устройствах.

Получить размеры ImageView — будьте осторожны

У элемента ImageView есть два метода getWidth() и getHeight(), позволяющие получить его ширину и высоту. Но если вы попробуете вызвать указанные методы сразу в методе onCreate(), то они возвратят нулевые значения. Можно добавить кнопку и вызвать данные методы через нажатие, тогда будут получены правильные результаты. Либо использовать другой метод активности, который наступает позже.

Копирование изображений между ImageView

Если вам надо скопировать изображение из одного ImageView в другой, то можно получить объект Drawable через метод getDrawable() и присвоить ему второму компоненту.

Примеры

В моих статьях можно найти примеры использования ImageView.

Источник

Android Studio: Добавить свою картинку как иконку проекта

Любое приложение, любой проект, требует своё собственное оформление, свой стиль. И конечно же мобильные приложения не стали исключением. Первый же вопрос, с которым я столкнулся – «Как добавить своё изображение в качестве иконки проекта Android Studio?». Вы можете пользоваться картинками «по умолчанию», что предоставляет программа, но во-первых – этого недостаточно, а во-вторых, часто приходится создавать приложение отталкиваясь от уже существующего брендбука.

Для того чтобы добавить своё изображение в проект, в программе Android Studio, в каталоге Вашего проекта, найдите путь: app > src > res и вызовите контекстное меню (правой кнопкой мыши):

Здесь, как можно увидеть на скриншоте, мы выбираем: New > Image Asset. И попадаем во вкладку, где необходимо указать путь к изображению, задать ему имя и выбрать тип (в нашем случае Image):

Изображение, это файл с расширением *.png, с разрешением 512х512 точек. Для примера, я взял png с разрешением 256х256, чтобы можно было почувствовать разницу. После чего нажимаем Next.

После чего мы видим сообщение о том, что будет заменено текущее изображение загрузчика.

Кстати текущее изображение, можно загрузить и на рабочую область.

Здесь как раз отчётливо видна разница между изображениями 256х256 и 512х512. И кстати, если Вам необходимо добавить изображение для Вашего проекта, то выбрав New > Image Asset, укажите панель Action Bar and Tab Icons.

Источник

Работа с изображениями

Ресурсы изображений

Одним из наиболее распространенных источников ресурсов являются файлы изображений. Android поддерживает следующие форматы файлов: .png (предпочтителен), .jpg (приемлем), .gif (нежелателен). Для графических файлов в проекте уже по умолчанию создана папка res/drawable . По умолчанию она уже содержит ряд файлов — пару файлов иконок:

При добавлении графических файлов в эту папку для каждого из них Android создает ресурс Drawable . После этого мы можем обратиться к ресурсу следующим образом в коде Java:

Например, добавим в проект в папку res/drawable какой-нибудь файл изображения. Для этого скопируем на жестком диске какой-нибудь файл с расширением png или jpg и вставим его в папку res/drawable (для копирования в проект используется простой Copy-Paste)

Читайте также:  Vbmeta android что это

Далее нам будет предложено выбрать папку — drawable или drawable-24 . Для добавления обычных файлов изображений выберем drawable :

Здесь сразу стоит учесть, что файл изображения будет добавляться в приложение, тем самым увеличивая его размер. Кроме того, большие изображения отрицательно влияют на производительность. Поэтому лучше использовать небольшие и оптимизрованные (сжатые) графические файлы. Хотя, также стоит отметить, что все файлы изображений, которые добавляются в эту папку, могут автоматически оптимизироваться с помощью утилиты aapt во время построения проекта. Это позволяет уменьшить размер файла без потери качества.

При копировании файла нам будет предложено установить для него новое имя.

Можно изменить название файла, а можно оставить так как есть. В моем случае файл называется dubi2.png . И затем нажмем на кнопку 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()

Источник

Как работать в Android Studio с изображениями: пошаговая инструкция

Android Studio — это специализированная среда разработки для приложений на Андроид. Компания Гугл считает эту IDE официальным инструментом разработчика Андроид-приложений. Большинство начинающих разработчиков приложений начинают именно с этой IDE. Поэтому часто при работе с ней возникают простые вопросы типа: «Как добавить картинку в Android Studio?». Сегодня мы этот вопрос и разберем.

Графическое изображение — это важный элемент любой разработки, где предусмотрен пользовательский интерфейс. Разработка приложений для Андроид — не исключение, потому что любому разработчику хочется придать своему «детищу» индивидуальный вид или стиль.

Вообще, ОС Андроид поддерживает графические изображения следующих форматов:

  • .png — это наиболее предпочтительный и распространенный формат изображений для этой ОС;
  • .jpg — менее предпочтительный, но также используется при разработке;
  • .gif — нежелательно использовать это расширение файлов, потому что оно создает дополнительные проблемы, однако встретить его в Андроид-приложениях также возможно.

Как добавить картинку в Android Studio

Сегодня не будем разбирать вс ю процедуру, как начать работу в Android Studio. Предполагаем, что вы уже запустили разработку своего проекта и столкнулись с очередным вопросом : как вставить картинку в Android Studio ?

При старте собственного проекта по умолчанию для графических документов создается отдельная папка, которая находится по пути:

Читайте также:  The neverhood для андроид

Иногда там уже можно встретить какие-то изображения, в основном это стандартные иконки для демонстрации. При добавлении дополнительных изображений в указанную папку для них Андроидом создается отдельный ресурс drawable. И когда нам нужно будет обратиться к указанному файлу-ресурсу, это будет выглядеть так:

  • непосредственно в скрипте Java: R.drawable.Имя_Вашего_Файла
  • xml-кодировании : @[Имя_Созданного_Пакета:]drawable/Имя_Вашего_Файла

Допустим , вы решили добавить собственное изображение в указанн ую папку-хранилище: app/res/drawable . Все , что вам нужно для этого , — это скопировать нужный файл с hard-диска вашего компьютера, желательно файл с расширением .png или в крайнем случае с .jpg , и вставить его в указанную папку. При копировании можно использовать простую операцию «Копировать — Вставить» или комбинацию клавиш «Ctrl+C — Ctrl+V», тут не принципиально.

В некоторых версиях Android Studio вам предложат 2 папки , куда можно добавить ваше изображение: drawable или drawable-v24. Выбираем первую папку «drawable» и вставляем свое изображение туда. Также при копировании будет возможность переименовать свое изображение : если вдруг вы до этого не успели задать файлу нужное имя, то можете сделать это в моменте копирования или оставить все как есть. Выбирая игровые автоматы, доступные в Украине на платформах надежных интернет казино, можно найти замечательные слоты с высоким уровнем отдачи призовых. Разнообразные аппараты помогают отвлечься от повседневных забот, погружая игроков в увлекательный мир драйвовых эмоций и великолепных выигрышей, обеспечивая массу восхитительных ощущений.

Хочется обратить ваше внимание на то, что , когда вы хотите добавить картинку в Android Studio по указанному выше методу, она добавляется непосредственно в ваше приложение. Поэтому перед добавлением картинок нужно позаботиться о б их оптимизации. То есть необходимо добавлять картинки нужных размеров и желательно «сжимать» их при помощи сторонних сервисов. Потому что большие и тяжелые файлы будут отрицательно влиять на производительность вашего будущего приложения. Если по каким-то причинам вы не обработали изображение, то ест ь возможность оптимизировать их прямо во время разработки проекта, используя утилиту «aapt».

Как вывести картинку в Andro i d Studio

Как добавить картинку в Android Studio — мы выяснили. Это сделать совсем не сложно. Однако мы добавляем картинки для того, чтобы их пото м где-то вывести. За вывод картинок в интерфейс вашего Андроид-приложения отвечает компонент ImageView. Это базовый элемент, который занимается только графикой в вашем приложении.

Мы разобрали , как вставить картинку непосредственно в корень Android Studio, однако сами картинки можно добавлять и из других источников, например , из галереи вашего ПК или из интернет-ресурсов. Понятно, что эти методы не всегда себя оправдывают, так как в таких случаях всегда будет вероятность того, что картинка будет удалена в своем источнике, а значит, есть вероятность , что ваше приложение будет «поломано». Но эти методы добавления картинок все равно есть.

Итак, в ImageView можно:

  • представить картинку по ID ресурса при помощи оператора setImageResource(int);
  • представить растровую картинку с помощью setImageBitmap(Bitmap);
  • представить картинку .png или .jpg, используя оператор setImageDrawable(Drawable);
  • загрузить картинку по URI при помощи оператора setImageURI(Uri).

Добавить картинку в Android Studio просто, как и добавить свое фото в со цс еть. Сложнее вывести изображение в нужном месте вашего приложения, тем более если хотите добавить к нему какие-то эффекты. Но в любом случае не забывайте перед использованием сторонних изображений проводить им должную оптимизацию, чтобы не создать такое приложение, которое не сможет запуститься на современном смартфоне из — за своей «тяжести» и прожорливости.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Оцените статью