Я использую горизонтальный индикатор выполнения в приложении для Android, и я хочу изменить его цвет выполнения (по умолчанию это желтый). Как это сделать, используя code
(не XML)?
Как изменить цвет прогресса шага выполнения в Android
Ответ 1
Мне жаль, что это не ответ, но что заставило его установить его из кода?
И .setProgressDrawable
должен работать, если он правильно определен
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ff9d9e9d"
android:centerColor="#ff5a5d5a"
android:centerY="0.75"
android:endColor="#ff747674"
android:angle="270"
/>
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#80ffd300"
android:centerColor="#80ffb600"
android:centerY="0.75"
android:endColor="#a0ffcb00"
android:angle="270"
/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners
android:radius="5dip" />
<gradient
android:startColor="@color/progress_start"
android:endColor="@color/progress_end"
android:angle="270"
/>
</shape>
</clip>
</item>
</layer-list>
Ответ 2
Для горизонтального ProgressBar вы также можете использовать ColorFilter
следующим образом:
progressBar.getProgressDrawable().setColorFilter(
Color.RED, android.graphics.PorterDuff.Mode.SRC_IN);
Примечание. Это изменяет внешний вид всех индикаторов выполнения вашего приложения. Чтобы изменить только один конкретный индикатор выполнения, выполните следующие действия:
Drawable progressDrawable = progressBar.getProgressDrawable().mutate();
progressDrawable.setColorFilter(Color.RED, android.graphics.PorterDuff.Mode.SRC_IN);
progressBar.setProgressDrawable(progressDrawable);
Если progressBar является неопределенным, используйте getIndeterminateDrawable()
вместо getProgressDrawable()
.
Начиная с Lollipop (API 21) вы можете установить оттенок выполнения:
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
Ответ 3
Это не программно, но я думаю, что это может помочь многим людям в любом случае.
Я много пробовал, и самым эффективным способом было добавить эти строки в мой ProgressBar в .xml файле:
android:indeterminate="true"
android:indeterminateTintMode="src_atop"
android:indeterminateTint="@color/secondary"
В итоге этот код сделал это для меня:
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="50dp"
android:layout_marginBottom="50dp"
android:visibility="visible"
android:indeterminate="true"
android:indeterminateTintMode="src_atop"
android:indeterminateTint="@color/secondary">
Это решение работает для API 21+
Ответ 4
Для моего неопределенного progressbar (spinner) я просто установил цветной фильтр на drawable. Отлично работает и только одна строка.
Пример настройки цвета на красный:
ProgressBar spinner = new android.widget.ProgressBar(
context,
null,
android.R.attr.progressBarStyle);
spinner.getIndeterminateDrawable().setColorFilter(0xFFFF0000, android.graphics.PorterDuff.Mode.MULTIPLY);
Ответ 5
Это старый вопрос, но использование темы здесь не упоминается. Если ваша тема по умолчанию использует AppCompat
, ваш цвет ProgressBar
будет colorAccent
, который вы определили.
Изменение colorAccent
также изменит цвет ProgressBar
, но изменения также отражаются в нескольких местах. Итак, если вы хотите другой цвет только для определенного PregressBar
, вы можете сделать это, применив тему к этому ProgressBar
:
-
Расширьте тему по умолчанию и переопределите
colorAccent
<style name="AppTheme.WhiteAccent"> <item name="colorAccent">@color/white</item> <!-- Whatever color you want--> </style>
-
И в
ProgressBar
добавьте атрибутandroid:theme
:android:theme="@style/AppTheme.WhiteAccent"
Итак, это будет выглядеть примерно так:
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="10dp"
android:theme="@style/AppTheme.WhiteAccent" />
Итак, вы просто меняете colorAccent
для своего конкретного ProgressBar
.
Примечание. Использование style
не будет работать. Вам нужно использовать только android:theme
.
Вы можете найти больше использования темы здесь: https://plus.google.com/u/0/+AndroidDevelopers/posts/JXHKyhsWHAH
Ответ 6
Все API
если использовать все API, просто создайте тему в стиле
style.xml
<resources>
//...
<style name="progressBarBlue" parent="@style/Theme.AppCompat">
<item name="colorAccent">@color/blue</item>
</style>
</resources>
и использование в процессе
<ProgressBar
...
android:theme="@style/progressBarBlue" />
Уровень API 21 и выше
если используется в API уровня 21 и выше, просто используйте этот код:
<ProgressBar
//...
android:indeterminate="true"
android:indeterminateTintMode="src_atop"
android:indeterminateTint="@color/secondary"/>
Ответ 7
в соответствии с некоторыми из предложений, вы можете указать форму и clipdrawable с цветом, а затем установить его. У меня это работает программно. Вот как я это делаю.
Сначала убедитесь, что вы импортируете библиотеку с возможностью рисования.
import android.graphics.drawable.*;
Затем используйте код, похожий на ниже:
ProgressBar pg = (ProgressBar)row.findViewById(R.id.progress);
final float[] roundedCorners = new float[] { 5, 5, 5, 5, 5, 5, 5, 5 };
pgDrawable = new ShapeDrawable(new RoundRectShape(roundedCorners, null,null));
String MyColor = "#FF00FF";
pgDrawable.getPaint().setColor(Color.parseColor(MyColor));
ClipDrawable progress = new ClipDrawable(pgDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL);
pg.setProgressDrawable(progress);
pg.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.progress_horizontal));
pg.setProgress(45);
Ответ 8
Это сработало для меня:
<ProgressBar
android:indeterminateTint="#d60909"
... />
Ответ 9
если неопределенный:
((ProgressBar)findViewById(R.id.progressBar))
.getIndeterminateDrawable()
.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
Ответ 10
В настоящее время в 2016 году я обнаружил, что некоторые устройства pre-Lollipop не соблюдают настройку colorAccent
, поэтому мое окончательное решение для всех API теперь выглядит следующим образом:
// fixes pre-Lollipop progressBar indeterminateDrawable tinting
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
Drawable wrapDrawable = DrawableCompat.wrap(mProgressBar.getIndeterminateDrawable());
DrawableCompat.setTint(wrapDrawable, ContextCompat.getColor(getContext(), android.R.color.holo_green_light));
mProgressBar.setIndeterminateDrawable(DrawableCompat.unwrap(wrapDrawable));
} else {
mProgressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(getContext(), android.R.color.holo_green_light), PorterDuff.Mode.SRC_IN);
}
Для бонусных очков он не использует устаревший код. Попробуйте!
Ответ 11
Это то, что я сделал. Работал.
Индикатор:
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="4"
android:indeterminateDrawable="@drawable/progressdrawable"
/>
progressdrawable.xml:
Здесь используйте градиент, чтобы изменить цвет по своему усмотрению. И андроид: toDegrees = "X" increse значение X и progressbar быстро вращаются. Уменьшите и поверните медленно. Настройте в соответствии с вашими потребностями.
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="4000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" >
<shape
android:innerRadius="20dp"
android:shape="ring"
android:thickness="4dp"
android:useLevel="false" >
<size
android:height="48dp"
android:width="48dp" />
<gradient
android:centerColor="#80ec7e2a"
android:centerY="0.5"
android:endColor="#ffec7e2a"
android:startColor="#00ec7e2a"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
Ответ 12
Ударьте ту же проблему во время работы над изменением внешнего вида/состояния индикатора выполнения по умолчанию. Вот еще информация, которая, надеюсь, поможет людям:)
- Имя xml файла должно содержать только символы:
a-z0-9_.
(т.е. без капиталов!) - Чтобы ссылаться на ваш "drawable", это
R.drawable.filename
- Чтобы переопределить внешний вид по умолчанию, вы используете
myProgressBar.setProgressDrawable(...)
, однако вам не нужно просто ссылаться на свой собственный макет какR.drawable.filename
, вам нужно получить его какDrawable
:Resources res = getResources(); myProgressBar.setProgressDrawable(res.getDrawable(R.drawable.filename);
- Вам нужно установить стиль перед установкой прогресса/вторичного хода/макс (установка впоследствии для меня привела к "пустой" строке выполнения)
Ответ 13
Вероятно, есть одна вещь, на которую в этом ответе не упоминалось:
Если ваша тема наследуется от Theme.AppCompat
, ProgressBar
примет цвет, который вы определили как "colorAccent"
в своей теме.
Итак, используя..
<item name="colorAccent">@color/custom_color</item>
.. автоматически изменит цвет ProgressBar на @color/custom_color
.
Ответ 14
Как я сделал это в горизонтальном ProgressBar:
LayerDrawable layerDrawable = (LayerDrawable) progressBar.getProgressDrawable();
Drawable progressDrawable = layerDrawable.findDrawableByLayerId(android.R.id.progress);
progressDrawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
Ответ 15
Вы можете попробовать изменить свои стили, темы или использовать андроид: indeterminateTint = "@color/yourColor" в любом месте, но только один способ сделать это будет работать в любой версии Android SKD:
Если вы выполняете настройку, это не является неопределенным, используйте:
progressBar.getProgressDrawable().setColorFilter(ContextCompat.getColor(context, R.color.yourColor), PorterDuff.Mode.SRC_IN );
Если вы выполняете настройку, то значение параметра не определено, используйте:
progressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(getContext(), R.color.yourColor), PorterDuff.Mode.SRC_IN );
Печально, что Android такой беспорядок!
Ответ 16
android:progressTint="#ffffff"
Ответ 17
Простейшее решение, если вы хотите изменить цвет в XML файле макета, используйте приведенный ниже код и используйте свойство indeterminateTint для нужного цвета.
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:indeterminate="true"
android:indeterminateTintMode="src_atop"
android:indeterminateTint="#ddbd4e"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
Ответ 18
Это решение работало для меня:
<style name="Progressbar.White" parent="AppTheme">
<item name="colorControlActivated">@color/white</item>
</style>
<ProgressBar
android:layout_width="@dimen/d_40"
android:layout_height="@dimen/d_40"
android:indeterminate="true"
android:theme="@style/Progressbar.White"/>
Ответ 19
Еще одна мелочь, решение темы действительно работает, если вы наследуете базовую тему, поэтому для компактного приложения ваша тема должна быть:
<style name="AppTheme.Custom" parent="@style/Theme.AppCompat">
<item name="colorAccent">@color/custom</item>
</style>
И затем установите это в теме шага выполнения
<ProgressBar
android:id="@+id/progressCircle_progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:theme="@style/AppTheme.Custom"
android:indeterminate="true"/>
Ответ 20
Написал, чтобы добавить информацию об ответе PaulieG, так как ateiob попросил меня кое-что объяснить...
Я могу сказать, что во время написания этой текущей версии исходного кода Android была (или, по крайней мере, была) ошибка/проблема/оптимизация в коде ProgressBar
которая игнорирует попытку установить значение прогресса в значении это уже в.
- то есть, если прогресс = 45, и вы пытаетесь установить его на 45, код ничего не будет делать и не будет перерисовывать прогресс.
После вызова ProgressBar.setProgressDrawable()
ваш индикатор выполнения будет пустым (потому что вы изменили рисуемую часть).
Это означает, что вам нужно установить прогресс и перерисовать его. Но если вы просто установите прогресс в сохраненное значение, это ничего не изменит.
Сначала необходимо установить значение 0, затем снова "старое" значение, и полоса будет перерисована.
Итак, подведем итог:
- сохранить "старое" значение прогресса
- обновить рисование/цвет (делает панель пустой)
- сбросить прогресс до 0 (иначе следующая строка ничего не делает)
- сбросить прогресс до "старого" значения (панель исправлений)
- аннулировать
Ниже у меня есть метод, который делает это:
protected void onResume()
{
super.onResume();
progBar = (ProgressBar) findViewById(R.id.progress_base);
int oldProgress = progBar.getProgress();
// define new drawable/colour
final float[] roundedCorners = new float[]
{ 5, 5, 5, 5, 5, 5, 5, 5 };
ShapeDrawable shape = new ShapeDrawable(new RoundRectShape(
roundedCorners, null, null));
String MyColor = "#FF00FF";
shape.getPaint().setColor(Color.parseColor(MyColor));
ClipDrawable clip = new ClipDrawable(shape, Gravity.LEFT,
ClipDrawable.HORIZONTAL);
progBar.setProgressDrawable(clip);
progBar.setBackgroundDrawable(getResources().getDrawable(
android.R.drawable.progress_horizontal));
// work around: setProgress() ignores a change to the same value
progBar.setProgress(0);
progBar.setProgress(oldProgress);
progBar.invalidate();
}
Что касается решения HappyEngineer, я думаю, что это был похожий обходной путь, чтобы вручную установить смещение "прогресса". В любом случае приведенный выше код должен работать на вас.
Ответ 21
Используйте android.support.v4.graphics.drawable.DrawableCompat:
Drawable progressDrawable = progressBar.getIndeterminateDrawable();
if (progressDrawable != null) {
Drawable mutateDrawable = progressDrawable.mutate();
DrawableCompat.setTint(mutateDrawable, primaryColor);
progressBar.setProgressDrawable(mutateDrawable);
}
Ответ 22
Для горизонтального стиля ProgressBar я использую:
import android.widget.ProgressBar;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.ClipDrawable;
import android.view.Gravity;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
public void setColours(ProgressBar progressBar,
int bgCol1, int bgCol2,
int fg1Col1, int fg1Col2, int value1,
int fg2Col1, int fg2Col2, int value2)
{
//If solid colours are required for an element, then set
//that elements Col1 param s the same as its Col2 param
//(eg fg1Col1 == fg1Col2).
//fgGradDirection and/or bgGradDirection could be parameters
//if you require other gradient directions eg LEFT_RIGHT.
GradientDrawable.Orientation fgGradDirection
= GradientDrawable.Orientation.TOP_BOTTOM;
GradientDrawable.Orientation bgGradDirection
= GradientDrawable.Orientation.TOP_BOTTOM;
//Background
GradientDrawable bgGradDrawable = new GradientDrawable(
bgGradDirection, new int[]{bgCol1, bgCol2});
bgGradDrawable.setShape(GradientDrawable.RECTANGLE);
bgGradDrawable.setCornerRadius(5);
ClipDrawable bgclip = new ClipDrawable(
bgGradDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL);
bgclip.setLevel(10000);
//SecondaryProgress
GradientDrawable fg2GradDrawable = new GradientDrawable(
fgGradDirection, new int[]{fg2Col1, fg2Col2});
fg2GradDrawable.setShape(GradientDrawable.RECTANGLE);
fg2GradDrawable.setCornerRadius(5);
ClipDrawable fg2clip = new ClipDrawable(
fg2GradDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL);
//Progress
GradientDrawable fg1GradDrawable = new GradientDrawable(
fgGradDirection, new int[]{fg1Col1, fg1Col2});
fg1GradDrawable.setShape(GradientDrawable.RECTANGLE);
fg1GradDrawable.setCornerRadius(5);
ClipDrawable fg1clip = new ClipDrawable(
fg1GradDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL);
//Setup LayerDrawable and assign to progressBar
Drawable[] progressDrawables = {bgclip, fg2clip, fg1clip};
LayerDrawable progressLayerDrawable = new LayerDrawable(progressDrawables);
progressLayerDrawable.setId(0, android.R.id.background);
progressLayerDrawable.setId(1, android.R.id.secondaryProgress);
progressLayerDrawable.setId(2, android.R.id.progress);
//Copy the existing ProgressDrawable bounds to the new one.
Rect bounds = progressBar.getProgressDrawable().getBounds();
progressBar.setProgressDrawable(progressLayerDrawable);
progressBar.getProgressDrawable().setBounds(bounds);
// setProgress() ignores a change to the same value, so:
if (value1 == 0)
progressBar.setProgress(1);
else
progressBar.setProgress(0);
progressBar.setProgress(value1);
// setSecondaryProgress() ignores a change to the same value, so:
if (value2 == 0)
progressBar.setSecondaryProgress(1);
else
progressBar.setSecondaryProgress(0);
progressBar.setSecondaryProgress(value2);
//now force a redraw
progressBar.invalidate();
}
Пример вызова:
setColours(myProgressBar,
0xff303030, //bgCol1 grey
0xff909090, //bgCol2 lighter grey
0xff0000FF, //fg1Col1 blue
0xffFFFFFF, //fg1Col2 white
50, //value1
0xffFF0000, //fg2Col1 red
0xffFFFFFF, //fg2Col2 white
75); //value2
Если вам не нужен "вторичный прогресс", просто установите значение2 в значение1.
Ответ 23
Применить этот пользовательский стиль к строке выполнения.
<style name="customProgress" parent="@android:style/Widget.ProgressBar.Small">
<item name="android:indeterminateDrawable">@drawable/progress</item>
<item name="android:duration">40</item>
<item name="android:animationCache">true</item>
<item name="android:drawingCacheQuality">low</item>
<item name="android:persistentDrawingCache">animation</item>
</style>
@drawable/progress.xml -
<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/spinner_white"
android:pivotX="50%"
android:pivotY="50%" />
Используйте этот тип изображения для индикатора выполнения.
Для лучшего результата вы можете использовать несколько изображений прогресса. И, пожалуйста, не стесняйтесь использовать изображения, потому что сама платформа Android использует изображения для progressbar. Код извлекается из sdk:)
Ответ 24
В соответствии с предложенным Мухаммадом-адилом для SDK версии 21 и выше
android:indeterminateTint="@color/orange"
в XML Работает для меня, достаточно легко.
Ответ 25
Вот код для изменения цвета ProgressBar программным путем.
ProgressBar progressBar = (ProgressBar) findViewById(R.id.pb_listProgressBar);
int colorCodeDark = Color.parseColor("#F44336");
progressBar.setIndeterminateTintList(ColorStateList.valueOf(colorCodeDark));
Ответ 26
ProgressBar freeRamPb = findViewById(R.id.free_ram_progress_bar);
freeRamPb.getProgressDrawable().setColorFilter(
Color.BLUE, android.graphics.PorterDuff.Mode.SRC_IN);
Ответ 27
ProgressBar bar;
private Handler progressBarHandler = new Handler();
GradientDrawable progressGradientDrawable = new GradientDrawable(
GradientDrawable.Orientation.LEFT_RIGHT, new int[]{
0xff1e90ff,0xff006ab6,0xff367ba8});
ClipDrawable progressClipDrawable = new ClipDrawable(
progressGradientDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL);
Drawable[] progressDrawables = {
new ColorDrawable(0xffffffff),
progressClipDrawable, progressClipDrawable};
LayerDrawable progressLayerDrawable = new LayerDrawable(progressDrawables);
int status = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO Auto-generated method stub
setContentView(R.layout.startup);
bar = (ProgressBar) findViewById(R.id.start_page_progressBar);
bar.setProgress(0);
bar.setMax(100);
progressLayerDrawable.setId(0, android.R.id.background);
progressLayerDrawable.setId(1, android.R.id.secondaryProgress);
progressLayerDrawable.setId(2, android.R.id.progress);
bar.setProgressDrawable(progressLayerDrawable);
}
Это помогло мне настроить собственный цвет, чтобы перейти через код. Надеюсь, что это поможет.
Ответ 28
Это так просто, используя attr, если вы имеете дело с многопользовательскими приложениями:
попробуйте следующим образом:
Объявить ниже атрибут attrs.xml
<attr name="circularProgressTheme" format="reference"></attr>
Вставьте под кодом в styles.xml
<style name="ProgressThemeWhite" parent="ThemeOverlay.AppCompat.Light">
<item name="colorAccent">#FF0000</item>
</style>
<style name="circularProgressThemeWhite">
<item name="android:theme">@style/ProgressThemeWhite</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="circularProgressTheme">@style/circularProgressThemeWhite</item>
</style>
используйте индикатор выполнения, как показано ниже
<ProgressBar
style="?attr/circularProgressTheme"
android:id="@+id/commonProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="visible"/>
Ответ 29
Горизонтальный стиль выполнения пользовательских материалов:
Чтобы изменить цвет фона и ход горизонтального индикатора хода.
<style name="MyProgressBar" parent="@style/Widget.AppCompat.ProgressBar.Horizontal">
<item name="android:progressBackgroundTint">#69f0ae</item>
<item name="android:progressTint">#b71c1c</item>
<item name="android:minWidth">200dp</item>
</style>
Примените его к индикатору выполнения, установив атрибут стиля, для пользовательских стилей материалов и настраиваемого индикатора выполнения. http://www.zoftino.com/android-progressbar-and-custom-progressbar-examples
Ответ 30
Чтобы изменить горизонтальный цвет ProgressBar (в котлине):
fun tintHorizontalProgress(progress: ProgressBar, @ColorInt color: Int = ContextCompat.getColor(progress.context, R.color.colorPrimary)){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
progress.progressTintList = ColorStateList.valueOf(color)
} else{
val layerDrawable = progress.progressDrawable as? LayerDrawable
val progressDrawable = layerDrawable?.findDrawableByLayerId(android.R.id.progress)
progressDrawable?.setColorFilter(color, PorterDuff.Mode.SRC_ATOP)
}
}
Чтобы изменить неопределенный цвет ProgressBar:
fun tintIndeterminateProgress(progress: ProgressBar, @ColorInt color: Int = ContextCompat.getColor(progress.context, R.color.colorPrimary)){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
progress.indeterminateTintList = ColorStateList.valueOf(color)
} else {
(progress.indeterminateDrawable as? LayerDrawable)?.apply {
if (numberOfLayers >= 2) {
setId(0, android.R.id.progress)
setId(1, android.R.id.secondaryProgress)
val progressDrawable = findDrawableByLayerId(android.R.id.progress).mutate()
progressDrawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP)
}
}
}
}
И это, наконец, нормально подкрасить прогресс леденец на палочке