Учебное пособие по выполнению практических заданий по курсу "Разработка облачных и мобильных приложений на платформе Google Android"



Pdf көрінісі
бет14/35
Дата12.10.2023
өлшемі4.1 Mb.
#480634
түріУчебное пособие
1   ...   10   11   12   13   14   15   16   17   ...   35
AndroidStudioMeth (1)

break

case 
"Image 4"



39 
image.setImageResource(R.drawable.image4); 
break


Теперь осталось поместить любые изображения в папку drawable. 
Изображения либо должны называться image1.jpeg, image2.jpeg и т.д., либо в 
конструкции switch-case необходимо поменять путь до картинок в строке 
R.drawable.image1 и т.д. Не забудьте про текстовое поле с ФИО. Запустите 
приложение и увидите собственный список с картинкой и текстом. Пример 
показан на рисунке 26. 
Рисунок 26 – Пример выполнения лабораторной работы №5 


40 
Теперь рассмотрим более мощный и современный элемент 
RecyclerView
1
. Этот элемент создаёт ровно столько элементов списка, 
сколько видно на экране пользователю, поэтому он значительно экономит 
память, если список большой – а в приложениях списки, как правило, 
длинные. Когда пользователь прокручивает список вниз, верхний элемент 
уходит за пределы экрана и становится невидимым, при этом его содержимое 
очищается, а сам этот более ненужный на экране элемент помещается вниз 
экрана и заполняется новыми данными следующих элементов списка, т.е. 
переиспользуется (is being recycled). Общая модеь работы RecyclerView 
изображена ниже. 
Рисунок 26.2 – Модель работы RecyclerView
2
1
 
https://metanit.com/java/android/5.11.php
  
2
 
http://developer.alexanderklimov.ru/android/views/recyclerview-kot.php
  


41 
Создадим новый проект с EmptyActivity. Первое, что нужно сделать – 
это добавить следующую зависимость в gradle-файл уровня модуля: 
implementation 'androidx.recyclerview:recyclerview:1.2.1' 
Далее нужно построить макет для отдельного элемента списка, но он у 
нас уже есть в проекте с ListView и лежит в файле list_item.xml: 

xml version
="1.0" 
encoding
="utf-8"
?> 
<
androidx.constraintlayout.widget.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
=".MainActivity"

<
ImageView 
android
:id
="@+id/imageView" 
android
:layout_width
="wrap_content" 
android
:layout_height
="wrap_content" 
android
:layout_marginStart
="16dp" 
android
:layout_marginLeft
="16dp" 
android
:layout_marginTop
="16dp" 
app
:layout_constraintStart_toStartOf
="parent" 
app
:layout_constraintTop_toTopOf
="parent" 
app
:srcCompat
="@mipmap/ic_launcher" 
/> 
<
TextView 
android
:id
="@+id/textView" 
android
:layout_width
="wrap_content" 
android
:layout_height
="wrap_content" 
android
:layout_marginStart
="8dp" 
android
:layout_marginLeft
="8dp" 
android
:layout_marginEnd
="8dp" 
android
:layout_marginRight
="8dp" 
android
:text
="TextView" 
android
:textSize
="24sp" 
app
:layout_constraintBottom_toBottomOf
="@+id/imageView" 
app
:layout_constraintEnd_toEndOf
="parent" 
app
:layout_constraintHorizontal_bias
="0.077" 
app
:layout_constraintStart_toEndOf
="@+id/imageView" 
app
:layout_constraintTop_toTopOf
="@+id/imageView" 
/> 
androidx.constraintlayout.widget.ConstraintLayout

Также нам понадобится файл images.xml в папке res/values, 
содержащий названия картинок, и сами эти картинки в папке drawable. 
Теперь удалим TextView "Hello world" и добавим компонент RecyclerView в 
activity_main.xml. Чтобы видеть дизайн элемента списка, который мы 


42 
создали в list_item.xml, добавим значение @layout/list_item в свойство 
RecyclerView под названием listitem. Кроме того, нужно добавить следующее 
свойство в код описания RecyclerView: 
app
:layoutManager
="androidx.recyclerview.widget.LinearLayoutManager"
Это нужно для того, чтобы RecyclerView знал, как отображать список. 
Оптимизируем наш предыдущий проект: создадим 2 дополнительных класса, 
осблуживающих RecyclerView. Первый класс назовём Image, он будет 
содержать основные методы для задания необходимых данных элемента 
списка: 
public class 
Image 

private 
String 
name



Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   ...   35




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет