Изменить цвет панели поиска в зависимости от прогресса

У меня есть SeekBar в одном из моих действий в моем приложении.

Эта панель поиска придает мне важность объекта, который я создаю. Важность может быть 0,1 или 2.

Я хотел бы динамически изменить цвет фона моего SeekBar, когда я его использую. Как я могу это сделать ?

Вот цвета, которые я хотел бы использовать:

Важность 0: "#ff8080"

Важность 1 :"#ff0000"

Важность 2 :"#4d0000"

Спасибо за вашу помощь, и скажите мне, если вам нужно больше кода!

  BarreImportance.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int i, boolean b) {

            if(i==0)
            { //it does not accept my colors..
                BarreImportance.getProgressDrawable().setColorFilter(Color.parseColor("#ff8080"));
            }
            if(i==1)
            {
      //it changes the whole background, not what  I want...          BarreImportance.setBackgroundColor(Color.parseColor("#ff0000"));

        }

person David    schedule 05.06.2017    source источник
comment
Вы неправильно устанавливаете цветовой фильтр. Во-первых, вызовите его на своем объекте seekBar. Во-вторых, попробуйте что-то вроде этого: setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);   -  person Robert K.    schedule 05.06.2017
comment
о, спасибо ! но можно ли также изменить цвет круга? Потому что, если важность равна 0, я бы хотел, чтобы цвет был хотя бы таким, чтобы пользователь мог его распознать после...   -  person David    schedule 05.06.2017
comment
seekBar.getThumb().setColorFilter(..)   -  person Robert K.    schedule 05.06.2017
comment
Я использую API 14... и минимум для getThumb 16... есть идеи?   -  person David    schedule 05.06.2017
comment
Проверьте этот ответ stackoverflow.com/questions/18622120/   -  person Robert K.    schedule 05.06.2017


Ответы (1)


Вам нужно использовать обратный вызов OnSeekBarChangeListener's onProgressChanged и изменить цвет изнутри вот так: mySeekBar.getProgressDrawable().setColorFilter(..) и mySeekBar.getThumb().setColorFilter(..)

person Robert K.    schedule 05.06.2017
comment
можете ли вы привести пример только для одного = как, если важность равна 0, пожалуйста? - person David; 05.06.2017