Я пытаюсь понять, как рассчитываются вращающиеся рисованные объекты при использовании в индикаторах выполнения. Например, следующий чертеж (взятый из этого поста ) создаст круговой индикатор выполнения.
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="270"
android:toDegrees="270">
<shape
android:innerRadiusRatio="2.5"
android:shape="ring"
android:thickness="4dp">
<solid android:color="#2196F3"/>
</shape>
</rotate>
Что находится под капотом, который заставляет кольцо заполняться постепенно?
Вот некоторые конкретные вопросы.
- В целом круг составляет 360 градусов, так почему в параметрах to / from должны быть определены 270 градусов?
- Когда вы повернуть реальное кольцо на любую степень в 2D, оно всегда выглядит как полное кольцо, так почему же тогда оно постепенно заполняется в примере?
- Если я заменим
ring
форму на oval
, тогда весь овал всегда заполнен и нет анимации. Я ожидал, что ring
форма будет вести себя так же. Почему это не так? - Как рассчитываются параметры от / до градусов при изменении значения прогресса? Что будет значением от / до степени, когда прогресс равен, например,
50
(из макс. 100
, если это имеет значение).