Android textview with imageview

Размещение textview поверх imageview в android

это дает выход как ниже

как сделать что-то вроде ниже

Примечание:: Блюдо 1 & 2 являются textviews

7 ответов

это должно дать вам необходимую планировку:

сыграет с android:layout_marginTop=»20dp» чтобы увидеть, какой подходит вам лучше. Используйте код textview для динамической установки android:text значение.

поскольку RelativeLayout стекает свои дочерние элементы, определение TextView после ImageView помещает его «поверх» ImageView.

Примечание: аналогичные результаты могут быть получены с помощью FrameLayout как родитель, наряду с повышением эффективности по сравнению с использованием любого другого android контейнер. Спасибо Igor Ganapolsky (см. комментарий ниже), отметив, что этот ответ нуждается в обновлении.

надеюсь, это может вам помочь.

можно использовать framelayout для достижения этой цели.

Как использовать framelayout

просто перетащите TextView поверх ImageView в eclipse

и это вывод вышеуказанного xml

как вы упомянули в OP, вам нужно наложить Text on ImageView как программно. Вы можете получить ImageView drawable и писать на нем с помощью размещения его на Canvas и Paint .

вы можете попробовать это слишком. Я использую просто так.

может быть, вам стоит сначала написать ImageView, а затем TextView. Иногда это помогает. Это просто, но я надеюсь, что это кому-то поможет. 🙂

Источник

ImageView

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

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

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

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

  • setImageResource(int resId) — загружает изображение по идентификатору ресурса
  • setImageBitmap(Bitmap bitmap) — загружает растровое изображение
  • setImageDrawable(Drawable drawable) — загружает готовое изображение
  • setImageURI(Uri uri) — загружает изображение по его URI
Читайте также:  Как включить защиту android для nfc

Метод 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() и присвоить ему второму компоненту.

Читайте также:  Unpack android img linux

Примеры

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

Источник

Android RecyclerView ListView with ImageView TextView JSON parsing custom data example tutorial

In this tutorial we are going to develop fully dynamic android application with RecyclerView, CardView, ImageView, TextView in the form of ListView using JSON data that is coming from MySQL database which is store on server. We are using PHP file to convert MySQL db data into JSON format and the most important and amazing thing of this project is that all the image is uploaded on server and their paths will be stored into database so while parsing JSON the image path is alos directly coming from server. So here is the complete step by step tutorial for Android RecyclerView ListView with ImageView TextView JSON parsing custom data example tutorial .

Note: Read below steps very carefully.

1. Open your project’s build.gradle ( Module : app ) file.

2. Please add below code inside your build.gradle ( Module : app ) file to import CardView, RecyclerView, design and Volley library.

3. Screenshot of build.gradle ( Module : app ) file after adding above code.

Next step is to start coding.

List of All Java files inside this project :

  1. MainActivity.java .
  2. GetDataAdapter.java .
  3. RecyclerViewAdapter.java .
  4. ServerImageParseAdapter.java .

List of layout XML files in this project :

List of PHP files to convert MySQL db data into JSON :

NOTE : Please add internet permission inside your project’s AndroidManifest.xml file.

Screenshot of JSON data :

Android RecyclerView ListView with ImageView TextView JSON parsing custom data example tutorial.

Code for MainActivity.java file.

Code for GetDataAdapter.java file.

Code for RecyclerViewAdapter.java file.

Code for ServerImageParseAdapter.java file.

Code for activity_main.xml layout file.

Code for recyclerview_items.xml layout file.

Code for AndroidManifest.xml file.

Code for PHP files :

Code for ImageJsonData.php file.

Code for dbconfig.php file.

Screenshots :

Click here to download Android RecyclerView ListView with ImageView TextView JSON parsing custom data example tutorial project with source code.

Источник

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