Повернуть вычисляемый градус - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь понять, как рассчитываются вращающиеся рисованные объекты при использовании в индикаторах выполнения. Например, следующий чертеж (взятый из этого поста ) создаст круговой индикатор выполнения.

<?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>

Что находится под капотом, который заставляет кольцо заполняться постепенно?

Вот некоторые конкретные вопросы.

  1. В целом круг составляет 360 градусов, так почему в параметрах to / from должны быть определены 270 градусов?
  2. Когда вы повернуть реальное кольцо на любую степень в 2D, оно всегда выглядит как полное кольцо, так почему же тогда оно постепенно заполняется в примере?
  3. Если я заменим ring форму на oval, тогда весь овал всегда заполнен и нет анимации. Я ожидал, что ring форма будет вести себя так же. Почему это не так?
  4. Как рассчитываются параметры от / до градусов при изменении значения прогресса? Что будет значением от / до степени, когда прогресс равен, например, 50 (из макс. 100, если это имеет значение).
...