Что нового
  • Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Создаём Горизонтальный Слайдер С Изображениями Для Android Без Единой Строки Кода

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,071
Баллы
155
Возраст
52
Во многих Android приложениях можно встретить такой приём как просмотр изображений при помощи их перелистывания. Когда каждое из нескольких изображений располагается как бы на отдельном экране.

Существует достаточно много способов реализации для этого. Сегодня мы рассмотрим способ, который не требует написания ни одной строки кода на Java. Всё будет сделано при помощи XML разметки.


Основой для слайдера будет служить виджет HorizontalScrollView. В качестве примера расположим его внутри ConstraintLayout и зададим привязки таким образом, чтобы HorizontalScrollView был растянут по размеру контейнера (параметры привязки в примере кода в конце статьи).

У вложенного в HorizontalScrollView LinearLayout задаём ориентацию horizontal (по умолчанию установлено vertical) чтобы изображения располагались по горизонтали. А, внутри этого LinearLayout помещаем несколько ImageView с изображениями из ресурсов программы.

Для того чтобы изображения в слайдере отображались и перелистывались корректно у каждого ImageView устанавливаем следующие параметры: layout_width – WRAP_CONTENT, layout_height – MATCH_PARENT, adjustViewBounds – true.

Параметр adjustViewBounds необходим если для слайдера планируется использовать изображения в высоком разрешении. В противном случае между изображениями могут появиться пробелы.

Собственно, теперь слайдер готов. Важно отметить, что все вышеописанные действия выполнены полностью без написания программного кода на Java. Для создания подобного слайдера вполне достаточно работы с XML разметкой в текстовом или визуальном редакторе.

В завершение приведём код слайдера, созданного в рамках данной статьи.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android=http://schemas.android.com/apk/res/android
xmlns:app=http://schemas.android.com/apk/res-auto
xmlns:tools=http://schemas.android.com/tools
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.xmlslider.MainActivity">
<HorizontalScrollView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.514">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
app:srcCompat="@drawable/a001" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
app:srcCompat="@drawable/a002" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
app:srcCompat="@drawable/a003" />
</LinearLayout>
</HorizontalScrollView>
</android.support.constraint.ConstraintLayout>
 
Вверх