Использование библиотек для разработки мобильных приложений
Библиотека AvatarView
Библиотека AvatarView
Библиотека CatLoadingView
Библиотека Subsampling Scale Image View
Библиотека ACRA
Библиотека ACRA
Библиотека android-times-square
Библиотека AndroidSlidingUpPanel
Библиотека OpenCV. Компьютерное зрение
Библиотека svg-android
Библиотека jsoup
Библиотека jsoup
Библиотека Retrofit
Еще несколько полезных библиотек
Библиотека AChartEngine
Библиотека GraphView
Библиотека EazeGraph
Библиотека MPAndroidChart
Библиотека WilliamChart
Библиотека picasso
Библиотека glide
Библиотека Android-Universal-Image-Loader
Библиотека StfalconPriceRangeBar-android
Библиотека DialerLoading
Библиотека PaperShredder
Библиотека HorizontalWheelView
Библиотека JumpingBeans
Библиотека ticker
Библиотека DoorSignView
Библиотека HoloColorPicker
Библиотека Android-WScratchView
16.56M
Категория: ПрограммированиеПрограммирование

PiRMP_Lektsia_4

1. Использование библиотек для разработки мобильных приложений

Проектирование и
разработка мобильных
приложений

2.

План лекции
Библиотеки для построения графиков.
Библиотеки
для
работы
с
графическими
изображениями.
Другие полезные библиотеки.

3. Библиотека AvatarView

Установим зависимость в Gradle:
implementation 'io.getstream:avatarview-coil:1.0.3'
<io.getstream.avatarview.AvatarView
android:layout_width="110dp"
android:layout_height="110dp"
app:avatarViewBorderColor="@color/teal_700"
app:avatarViewBorderWidth="3dp"
app:avatarViewIndicatorBorderColor="@color/white"
app:avatarViewIndicatorBorderSizeCriteria="10"
app:avatarViewIndicatorColor="@color/purple_200"
app:avatarViewIndicatorEnabled="true"
app:avatarViewIndicatorPosition="bottomRight"
app:avatarViewIndicatorSizeCriteria="9"
app:avatarViewInitialsTextStyle="bold"
app:avatarViewShape="circle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
AvatarView — библиотека для работы с изображениями
профилей
или
аватаров
в
Android-приложениях.
Поддерживает загрузку нескольких изображений профиля,
границы,
индикаторы,
плейсхолдеры
или
просто
отображение инициалов.
https://github.com/getStream/avatarview-android
avatarView.loadImage(data)
val avatarView: AvatarView = findViewById(R.id.avatarView)
val uri = Uri.parse("http://developer.alexanderklimov.ru/android/images/android_cat.jpg")
val data = "https://placekitten.com/200/300" // String
val drawableRes = R.drawable.threecats // Drawable
avatarView.loadImage(drawableRes) // используем ресурсы Drawable
3

4. Библиотека AvatarView

В одну аватарку можно загрузить несколько изображений (до четырёх), надо только указать список.
val cats = listOf( "https://placekitten.com/200/300", "https://placekitten.com/g/200/300",) avatarView.loadImage(data = cats)
Цвет и толщина окантовки настраивается через атрибуты
avatarViewBorderColor и avatarViewBorderWidth. Можно даже
использовать массив цветов для окантовки через
avatarViewIndicatorBorderColorArray.
По умолчанию используется круглая аватарка. Но можно
установить и прямоугольную.
4

5. Библиотека CatLoadingView

Установим зависимость в Gradle.
implementation 'com.roger.catloadinglibrary:catloadinglibrary:1.0.9'
Можно установить свой текст под анимацией. По умолчанию
выводится текст "LOADING...".
Поместим на экране кнопку для запуска диалогового окна.
CatLoadingView основана на DialogFragment и выводит
анимационное изображение кота, чтобы показать, что
приложение работает и выполняет долгую операцию.
https://github.com/Rogero0o/CatLoadingView
val catLoadingView = CatLoadingView()
button.setOnClickListener {
catLoadingView.show(supportFragmentManager, "")
catLoadingView.setText(" М Я У ! ! ! ")
}
Если не устанавливать свой текст, то по умолчанию там LOADING…
5

6. Библиотека Subsampling Scale Image View

https://github.com/davemorrissey/subsampling-scale-image-view
Установим зависимость в Gradle.
compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.6.0'
Разметка должна использовать кастомный ImageView на всю область экрана:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
android:id="@+id/imageView" android:layout_width="match_parent"
android:layout_height="match_parent"/> </LinearLayout>
Осталось только прописать компонент и указать источник картинки.
SubsamplingScaleImageView imageView =
(SubsamplingScaleImageView)findViewById(R.id.imageView);
imageView.setImage(ImageSource.resource(R.drawable.cat));
// ... или ...
imageView.setImage(ImageSource.asset("map.png"))
// ... или ...
imageView.setImage(ImageSource.uri("/sdcard/DCIM/DSCM00123.JPG"));
Иногда требуется использовать очень
большую картинку, например, карту в
высоком разрешении.
Если просто добавить ее, то можно
наткнуться на переполнение памяти,
особенно, на слабых устройствах.
Библиотека позволяет избежать этой
проблемы, меняя разрешение исходной
картинки под размеры экрана. Дальше
пользователь может увеличивать
картинку жестами. Всё происходит
плавно и с анимацией. Также доступны
другие эффекты, например, повороты.
Автор библиотеки тестировал на
картинке с размером 20000x20000px.
При использовании Drawable создайте папку res/drawable-nodpi, чтобы избежать изменения размера картинки.
Этого достаточно для базового функционала библиотеки. Двойной тап увеличит картинку, повторный двойной тап уменьшит
её до минимального размера.
6

7. Библиотека ACRA

https://github.com/ACRA/acra
Название библиотеки ACRA является сокращением от Application Crash Reports for Android.
Разработчик создаёт всегда идеальную программу, которая никогда не глючит на его устройстве. Но стоит выложить
приложение для пользователей, как вдруг выясняется, что на других устройствах приложение может ломаться без явных на то
причин. Зачастую пользователь не может внятно сообщить разработчику приложения о проблеме. Библиотека ACRA поможет
разобраться, кто же виноват в неправильном поведении программы и прислать сообщение, не беспокоя при этом
пользователя.
Библиотека предоставляет несколько способов
Установим зависимость в Gradle.
получения отчёта об ошибке: отправка на электронный
compile 'ch.acra:acra:4.9.2'
адрес, отправка на сервер, реализация собственного
поставщика отчетов. Самый простой и понятный
Создадим класс, наследующийся от класса Application и
способ - отправка на электронный адрес. Им и
пропишем его имя в манифесте:
воспользуемся.
<application
...
android:name=".MyApplication"
android:theme="@style/AppTheme">
Добавим специальную аннотацию @ReportsCrashes к
классу MyApplication. Аннотация содержит следующие
атрибуты:
mailTo — электронный адрес, на который будут
приходить сообщения
mode — способ сообщения об ошибке
resToastText — сообщение, показываемое при ошибке
7

8. Библиотека ACRA

import org.acra.ACRA;
import org.acra.ReportingInteractionMode;
import org.acra.annotation.ReportsCrashes;
Библиотека ACRA
@ReportsCrashes(mailTo = "reports@yourdomain.com",
mode = ReportingInteractionMode.TOAST,
resToastText = R.string.crash_toast_text)
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ACRA.init(this);
}
}
Для проверки добавим кнопку на экран приложения. Код для
щелчка, где сами сознательно сгенерируем ошибку в приложении.
public void onClick(View view) {
throw new RuntimeException("App is crashed");
}
Включим разрешение на использование интернета.
<uses-permission android:name="android.permission.INTERNET"/>
8

9.

Библиотеки android-swipecards-view и AndroidImageSlider
https://github.com/Arjun-sna/android-swipecards-view
Карточки, которые можно смахивать в разные стороны
https://github.com/daimajia/AndroidImageSlider
Слайдер изображений для платформы Android.
Вы можете загружать изображения из интернет-URL,
рисунков или файлов
9

10. Библиотека android-times-square

https://github.com/square/android-times-square
Компонент для работы с датами в календаре от разработчиков
популярных библиотек Retrofit, okHTTP.
Рекомендуется использовать в активности телефона. В планшетах
будет смотреться не слишком хорошо, поэтому лучше использовать в
виде диалоговых окон или в фрагментах. Компонент может
пригодиться, если стандартные компоненты системы по какой-либо
причине вас не устроят.
10

11. Библиотека AndroidSlidingUpPanel

Библиотека AndroidSlidingUpPanel позволяет создать
выдвигающую панель сверху или снизу.
https://github.com/umano/AndroidSlidingUpPanel
Установим зависимость в Gradle.
dependencies {
compile 'com.sothree.slidinguppanel:library:2.0.4'
}
Контейнер SlidingUpPanelLayout должен быть корневым и
содержать два дочерних элемента. Атрибут android:gravity
позволяет задать расположение панели: снизу (bottom) или
сверху (top). Между панелью и основным содержанием
выводится полоска, которую можно убрать через нулевое
значение атрибута sothree:shadowHeight. По умолчанию
основное содержание сдвигается, но можно сделать
наложение панели на основное содержание через атрибут
sothree:overlay="true". При выдвижении основной экран
затемняется на серый цвет, можно установить свой цвет
затемнения через атрибут sothree:fadeColor.
Сама панель выдвигается либо нажатием, либо сдвигом.
Также эти возможности можно отключить и показывать
панель программно. Доступен эффект параллакса и другие
возможности.
11

12. Библиотека OpenCV. Компьютерное зрение

Open Source Computer Vision Library
https://github.com/ramonrabello/OpenCV-Kotlin-Starter
Cтартовый проект, который
интегрирует OpenCV для
Android, позволяя для создания
приложений на основе Computer
Vision
12

13. Библиотека svg-android

https://github.com/pents90/svg-android/tree/master/svgandroid
Поддерживается векторный формат SVG.
Желательно использовать версию SVG Basic 1.1,
который доступен при сохранении в Adobe
Illustrator. Могут подойти и изображения, сделанные
в Inkscape.
Но надо проверять вживую, возможно, будет
необходимо открыть файл в Иллюстраторе и удалить
различные лишние слои, чтобы очистить файл от
мусора.
ImageView imageView = (ImageView)
findViewById(R.id.vector_image_view);
imageView.setBackgroundColor(Color.WHITE);
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
// указываем ресурс
SVG svg = SVGParser.getSVGFromResource(getResources(),
R.raw.cats);
// выводим изображение
Drawable drawable = svg.createPictureDrawable();
imageView.setImageDrawable(drawable);
13

14. Библиотека jsoup

https://jsoup.org/
Библиотека jsoup предназначена для разбора HTML-страниц (парсинг), позволяя извлечь необходимые данные, используя
DOM, CSS и методы в стиле jQuery. Библиотека поддерживает спецификации HTML5 и позволяет парсить страницы, как
это делают современные браузеры. Библиотеке можно передать для анализа URL, файл или строку.
Получив документ, вы можете извлекать требуемую
информацию. Например, вы можете получить все теги meta:
Elements metaElements = doc.select("meta");
Заголовок страницы находится в теге <title>. Чтобы
получить текст заголовка, воспользуемся методом
Document.title():
textView.text = doc.title()
Метод select() позволяет получить нужные теги.
Если нужно получить атрибут тега, то используйте метод attr():
String name = metaElement.attr("name");
Можно выбрать теги с заданным классом. Например, на
странице встречается тег типа <h2 class="main">. Тогда код
будет следующим:
Elements mainHeaderElements = doc.select("h2.main");
Разбор текста из файла. В этом случае используется метод
Jsoup.parse(File in, String charsetName, String baseUri):
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
Теперь попробуем поработать с ссылками. В нашем
тексте есть ссылка, которую можно разбить на
несколько логических элементов: адрес, на который
ведёт ссылка, текст в ссылке и полная ссылка,
которая объединяет оба элемента.
Начнём с адреса ссылки:
val doc = Jsoup.parse(html)
val link = doc.select("a").first()
val linkHref = link.attr("href")
textView.text = linkHref
Чтобы получить текст ссылки:
val linkInnerH = link.html()
textView.text = linkInnerH
14

15. Библиотека jsoup

button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String html = "<html><head><title>Коты учатся кодить</title>« +
"<body><p>Коты умеют <del>ш</del>кодить.<br> Они великие
программисты." + "<p>А еще они умеют мяукать.</p>" + "<a
href='http://developer.alexanderklimov.ru'>Подробности здесь</a>" +
"</body></html>";
Document doc = Jsoup.parse(html);
textView.setText(doc.html());
}
});
не закрыт тег </head>, а также не закрыт тег </p> у первого
параграфа. Однако библиотека сама подставила недостающие
элементы.
15

16. Библиотека Retrofit

Многие сайты имеют собственные API для удобного
доступа к своим данным. На данный момент самый
распространённый вариант - это JSON. Также могут
встречаться данные в виде XML и других форматов.
Библиотека Retrofit упрощает взаимодействие с REST API
сайта, беря на себя часть рутинной работы.
Авторами библиотеки Retrofit являются разработчики из
компании "Square", которые написали множество полезных
библиотек, например, Picasso, Okhttp, Otto.
Библиотекой удобно пользоваться для запроса к различным
веб-сервисам с командами GET, POST, PUT, DELETE.
Может работать в асинхронном режиме, что избавляет от
лишнего кода.
В основном вам придётся работать с методами GET и
POST. Если вы будет создавать собственный API, то будете
использовать и другие команды.
http://square.github.io/retrofit
Основная часть работы происходит в onResponse(),
ошибки выводятся в onFailure() (неправильный адрес
сервера, некорректные формат данных, неправильный
формат класса-модели и т.п). HTTP-коды сервера
(например, 404) не относятся к ошибкам.
Метод onResponse() вызывается всегда, даже если запрос
был неуспешным. Класс Response имеет удобный метод
isSuccessful() для успешной обработки запроса (коды
200хх). В ошибочных ситуациях вы можете обработать
ошибку в методе errorBody() класса ResponseBody.
Другие полезные методы Response.
code() - HTTP-код ответа
body() - сам ответ в виде строки, без сериализации
headers() - HTTP-заголовки
message() - HTTP-статус (или null)
raw() — сырой HTTP-ответ
16

17. Еще несколько полезных библиотек

https://loopj.com/android-async-http/
Популярная библиотека, которой пользуются
такие гиганты как Instagram, Pinterest и тысячи
других разработчиков. Библиотека позволяет
асинхронно делать запросы к серверу и
скачивать и загружать файлы, картинки, JSON,
XML, работать с куками и т.д.
https://code.google.com/archive/p/android-query/
https://github.com/square/okhttp
Библиотека OkHttp является клиентом для
сетевых соединений по протоколам HTTP и
SPDY.
Библиотека opencsv. Парсер CSV
Java-библиотека AQuery предназначена для
быстрого и лёгкого программирования
асинхронных задач, а также управления
пользовательскими элементами управления.
17

18. Библиотека AChartEngine

AChartEngine — это библиотека графиков для приложений Android.
В настоящее время он поддерживает следующие типы диаграмм:
https://github.com/ddanny/achartengine
линейный график
диаграмма с областями
точечная диаграмма
график времени
гистограмма
круговая диаграмма
пузырьковая диаграмма
кольцевая диаграмма
гистограмма диапазона (максимум-минимум)
циферблат / датчик
комбинированная (любая комбинация линейной, кубической,
точечной, гистограммы, гистограммы, пузырьковой) диаграмма
кубическая линейная диаграмма
18

19. Библиотека GraphView

Библиотека для построения графиков двух видов.
https://github.com/jjoe64/GraphView
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Линейный график
GraphViewSeries exampleSeries = new
GraphViewSeries(
new GraphViewData[] {
new GraphViewData(1, 3.0d),
new GraphViewData(2, 1.5d),
new GraphViewData(3, 2.5d),
new GraphViewData(4, 1.0d),
new GraphViewData(5, 1.3d) });
GraphView graphView = new
LineGraphView(this, "График каких-то
данных");
graphView.addSeries(exampleSeries);
LinearLayout layout = (LinearLayout)
findViewById(R.id.layout);
layout.addView(graphView);
}
19

20. Библиотека EazeGraph

4 различных типа диаграмм
генерация динамической легенды
возможность использовать собственные метки легенды
анимация для каждого графика
сенсорное взаимодействие для PieChart и LineChart
различные атрибуты xml для настройки диаграмм
https://github.com/paulroehr/EazeGraph
20

21. Библиотека MPAndroidChart

https://github.com/PhilJay/MPAndroidChart
21

22. Библиотека WilliamChart

https://github.com/diogobernardino/WilliamChart
Williamchart — это библиотека для Android,
позволяющая быстро создавать
привлекательные и информативные диаграммы
в приложениях для Android.
22

23. Библиотека picasso

Мощная библиотека загрузки и кэширования
изображений для Android.
Загрузить картинку из сети:
Picasso.with(context)
.load(url)
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(imageView);
https://github.com/square/picasso
Вы указываете адрес картинки (url), заглушку
(placeholder), заглушку для ошибки после трёх
неудачных попыток загрузки (error) и в методе into()
указываете компонент ImageView, в который
загружаете изображение.
При загрузке картинка кэшируется и при повторном
запросе на скачивание библиотека может достать
картинку из кэша, а не скачивать из интернета, что
ускоряет работу приложения. Если кэш будет
переполнен или удалён пользователем, то картина
снова скачается из сети. Очень удобно.
Если вы храните большие картинки в ресурсах или на
внешнем накопителе, то рекомендуется использовать
отдельный процесс для загрузки. Библиотека уже настроена
на работу в асинхронном режиме, поэтому вы можете
использовать её и в этих случаях.
23

24. Библиотека glide

https://github.com/bumptech/glide
Glide поддерживает извлечение, декодирование и отображение видеокадров, изображений и анимированных GIF-файлов.
Glide включает гибкий API что позволяет разработчикам подключаться практически к любому сетевому стеку.
Для простого примера достаточно указать три метода объекта Glide:
with(Context context) — передаём Context
load(String imageUrl) — указываем адрес картинки из интернета, ресурса, файла
into(ImageView targetImageView) — компонент ImageView, в котором должна отобразиться картинка
Адрес в интернете:
int resourceId = R.mipmap.ic_launcher_round;
Uri uri = Uri.parse("android.resource://" + this.getPackageName() + "/" + resourceId);
Glide
.with(this)
.load(uri)
.into(mImageView);
24

25. Библиотека Android-Universal-Image-Loader

https://github.com/nostra13/Android-Universal-Image-Loader
Библиотека для асинхронной
подгрузки изображений, их
кэширования и отображения.
Можно использовать, где надо
загрузить картинку в ImageView из
интернета или из файловой
системы. Все, что нужно, это URL
картинки (для файловой системы
он будет начинаться на «file://») и
собственно ImageView, в который
загруженную картинку надо будет
положить.
25

26. Библиотека StfalconPriceRangeBar-android

https://github.com/stfalcon-studio/StfalconPriceRangeBar-android
1. Добавьте jitpack в корневой файл build.gradle вашего проекта в
конце репозиториев.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2. Добавьте зависимость
dependencies {
...
implementation "com.github.stfalcon-studio:StfalconPriceRangeBarandroid:[latest_version]"
}
26

27.

Библиотека DiscreteSlide
https://github.com/hearsilent/DiscreteSlider
Шаг 1. Добавьте репозиторий JitPack в файл сборки.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Шаг 2. Добавьте зависимость
dependencies {
implementation 'com.github.hearsilent:DiscreteSlider:1.2.1'
}
27

28. Библиотека DialerLoading

Представление загрузки дискового дозвона, написанное на Kotlin.
implementation "io.saeid:dialer-loading:1.0.0"
https://github.com/SaeedMasoumi/DialerLoading
Добавить DialerLoadingView:
<io.saeid.dialerloading.DialerLoadingView
android:id="@+id/rotary_dialer"
// optional attributes
app:dialer_background_color="@color/your_color"
app:dialer_color_start="@color/your_color"
app:dialer_color_end="@color/your_color"
app:dialer_digit_color="@color/your_color"
app:dialer_triangle_color="@color/your_color"
app:dialer_duration="time in millis"
.../>
Чтобы начать загрузку:
rotary_dialer.dial(
endless = true // enable endless mode (default is true)
digits = arrayIntOf(1,2,3) // numbers to dial
)
Чтобы остановить загрузку:
rotary_dialer.hangUp()
28

29. Библиотека PaperShredder

<com.ldoublem.PaperShredderlib.PaperShredderView
android:layout_width="200dp"
android:id="@+id/ps_delete2"
android:layout_height="220dp"
paper:sherderBgColor="#f4c600"
paper:sherderText="清理中"
paper:sherderType="0"
paper:sherderPaperEnterColor="#56abe4"
paper:sherderTextShadow="false"
paper:sherderTextColor="#99101010"
paper:sherderPaperColor="#dbdbdb"
paper:sherderProgress="false"
/>
https://github.com/ldoublem/PaperShredder
29

30. Библиотека HorizontalWheelView

Добавьте репозиторий jitpack.io в корневой файл build.gradle:
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
https://github.com/shchurov/HorizontalWheelView
Добавьте зависимость в свой модуль build.gradle:
compile 'com.github.shchurov:horizontalwheelview:0.9.5'
void setListener(Listener listener)
Будет вызываться, когда пользователь
взаимодействует с представлением.
void setRadiansAngle(double radians)
Установить угол поворота в радианах
void setDegreesAngle(double degrees) Установить угол поворота в градусах
30

31. Библиотека JumpingBeans

Прыгающие точки, которые используются, чтобы указать, что ктото печатает, или выполняются какой-то другие виды текущих
действий (например, подключение к видеовстрече).
https://github.com/frakbot/JumpingBeans
«Поскольку у них нет официального названия, и поскольку они
напоминают мне прыгающие Мексиканские бобы, название
библиотеки, имитирующей их поведение, стало таким:
JumpingBeans»
dependencies { compile 'net.frakbot:jumpingbeans:1.3.0' }
31

32. Библиотека ticker

Ticker — это простой компонент пользовательского интерфейса Android для
отображения прокручиваемого текста.
Тикер обрабатывает плавную анимацию между строками, а также изменение
размера строки (от «9999» до «10000»).
https://github.com/robinhood/ticker
Вы можете указать, как будет происходить анимация, определив массив символов по порядку. Каждый символ,
отображаемый Тикером, управляется этим массивом, который определяет, как анимировать из начального положения к
целевому положению. Например, если вы просто используете базовый символ ASCII list, при анимации от «A» до «Z» он
будет идти от «A» -> «B» -> ... «Z». Мы будем выступать круговая анимация, когда она быстрее (например, от «Z» до «A»
будет просто анимироваться «Z» -> «A»).
<com.robinhood.ticker.TickerView
android:id="@+id/tickerView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Затем добавьте массив символов, чтобы указать стиль
анимации:
final TickerView tickerView = findViewById(R.id.tickerView);
tickerView.setCharacterLists(TickerUtils.provideNumberList());
32

33. Библиотека DoorSignView

https://github.com/renaudcerrato/DoorSignView
Создайте статические дверные
знаки, используя DoorSignViewили.
Или попробуйте
AnimatedDoorSignView для
добавления анимации, основанной
на датчиках ориентации устройства.
33

34. Библиотека HoloColorPicker

Чтобы добавить ColorPicker в свой макет:
<com.larswerkman.holocolorpicker.ColorPicker
android:id="@+id/picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
https://github.com/LarsWerkman/HoloColorPicker
Чтобы добавить полосу насыщенности/значения в макет:
<com.larswerkman.holocolorpicker.SVBar
android:id="@+id/svbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
То же самое касается полосы непрозрачности:
<com.larswerkman.holocolorpicker.OpacityBar
android:id="@+id/opacitybar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Полоса насыщенности:
<com.larswerkman.holocolorpicker.SaturationBar
android:id="@+id/saturationbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
и полоса значений:
<com.larswerkman.holocolorpicker.ValueBar
android:id="@+id/valuebar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
34

35. Библиотека Android-WScratchView

https://github.com/winsontan520/Android-WScratchView
Многим из вас приходилось иметь дело с
скретч-картами, когда монеткой нужно было
стереть защитный слой и увидеть заветные
цифры. Это могли быть и счастливые номера
лотереи или пин-код и т.д.
Библиотека WScratchView позволяет добиться
такого же эффекта. Вам надо потереть экран,
чтобы под защитным слоем увидеть картинку.
35

36.

Список литературы
Соколова, В.В. Разработка мобильных приложений: учебное пособие / В.В.
Соколова. – Томск : Изд-во Томского политехнического университета, 2014.

176
с.

ISBN
978-5-4387-0369-3.

URL:
https://biblioclub.ru/index.php?page=book_view_red&book_id=442808. – (дата
обращения: 21.07.2021). – Текст : электронный..
Пирская, Л.В. Разработка мобильных приложений в среде Android Studio :
учебное пособие / Л.В. Пирская – Таганрог : Издательство
Южного
федерального университета, 2019. – 123 с.- ISBN 978-5-9275-3346-6. –
URL: https://biblioclub.ru/index.php?page=book_view_red&book_id=598634. –
(дата обращения: 21.07.2021). – Текст : электронный.
English     Русский Правила