Skip to content

murik0586/CustomViewsFull

Repository files navigation

CustomViews

Анимации и создание собственных View

Задача. Smart StatsView

Описание

На текущий момент наша Custom View принимает в качестве данных доли:

findViewById<StatsView>(R.id.stats).data = listOf(
    0.25F,
    0.25F,
    0.25F,
    0.25F,
)

Что в сумме даёт нам картинку из лекции:

Q: что мы хотим?

A: мы хотим, чтобы StatsView принимала на вход данные, по которым сама рассчитывала проценты:

findViewById<StatsView>(R.id.stats).data = listOf(
    500F,
    500F,
    500F,
    500F,
)

Что должно давать такую же картинку, т. к. SmartStatsView просуммирует все данные и определит, что каждый элемент — это ровно 25 %:

Задача. Dot

Описание

В нашей реализации есть один не очень приятный нюанс:

Исправьте реализацию таким образом, чтобы мы из картинки «Как сейчас» получили картинку «Как должно быть».

Задача. Not Filled*

Описание

Если вы реализовали предыдущую задачу, то заполняемость вашего графика всегда 100 %.

Мы хотим сделать так, чтобы можно было иметь и незаполненную часть:

Задача. Rotation

Описание

Необходимо дополнить реализованную на лекции анимацию поворотом на 360 градусов:

Обратите внимание, что текст остаётся неподвижным.

Для решения задачи подумайте:

  1. Какой параметр отвечает за прогресс анимации.
  2. Как перевести его в градусы.
  3. Какой параметр отвечает за начальный сдвиг при отрисовке каждой дуги.

Задача. Sequential*

Описание

На лекции мы реализовали параллельное заполнение данными:

Сейчас же мы хотим сделать последовательное:

Задача. Attributes*

Описание

Если вы выполнили предыдущую задачу, то у вас получилось две реализации заполнения данными:

  1. Параллельная.
  2. Последовательная.

Сделайте так, чтобы тип заполнения можно было выбирать через XML. Используйте для этого format="enum". В качестве примера реализации смотрите статью на developer.android.com.

Задача. Bidirectional*

Описание

Предлагаем дополнить параллельное заполнение данными следующим режимом:

ezgif com-gif-maker

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages