Разноцветная панель прогресса Android

#android #android-layout

#Android #android-макет

Вопрос:

У меня есть индикатор выполнения с настраиваемым отображением

 <?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="120"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="140">    
<item android:id="@android:id/progress">
    <rotate
     android:fromDegrees="90"
     android:toDegrees="90">
  <shape
      android:innerRadiusRatio="3"
      android:shape="ring"
      android:angle="0"
      android:type="sweep"
      android:thicknessRatio="20.0">
    <solid android:color="#ffffff"/>
   </shape>
  </rotate>
  </item>
</layer-list>
  

Есть ли способ сделать этот индикатор выполнения разноцветным с разным цветом при разном прогрессе? Например: 0-50 — белый, 50-100 — зеленый и т.д.

Спасибо за любую помощь!

Комментарии:

1. Я могу придумать два варианта. 1) градиент, который можно нарисовать (если вы хотите такого эффекта). 2) создайте свой собственный пользовательский чертеж; довольно просто создать чертеж, чтобы просто рисовать цвета.

2. @Budius Не могли бы вы опубликовать пример, пожалуйста?

3. Базовая база — это класс, который расширяет Drawable возможности переопределения onDraw и выполнения вызовов рисования непосредственно на холсте, например canvas.drawRect(...) . Вот официальные документы по этому вопросу developer.android.com/guide/topics/graphics/2d-graphics.html и вы можете легко найти в Google какой-нибудь учебник

4. @Budius Спасибо, я постараюсь