SeekBar и градиент

Интерфейс, диалоги, темы, стили, меню
Ответить
vitek1658
Сообщения: 4
Зарегистрирован: 22 ноя 2016, 09:32

SeekBar и градиент

Сообщение vitek1658 » 12 авг 2017, 17:46

Всем доброго времени суток!

Код: Выделить всё

LinearGradient test = new LinearGradient(0.f, 0.f, 300.f, 0.0f,

                new int[] { 0xFF000000, 0xFF0000FF, 0xFF00FF00, 0xFF00FFFF,
                        0xFFFF0000, 0xFFFF00FF, 0xFFFFFF00, 0xFFFFFFFF},
                null, Shader.TileMode.CLAMP);
        final ShapeDrawable shape = new ShapeDrawable(new RectShape());
        shape.getPaint().setShader(test);

        final SeekBar seekBarFont = (SeekBar)findViewById(R.id.seekBar);
        seekBarFont.setProgressDrawable( (Drawable)shape );
        seekBarFont.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            int progress = 0;
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                mBackground.setBackgroundColor(progress);
                progress = seekBarFont.getProgress();
            }
        });
получился вот такой seekbar (во вложении).
задача: отследить положение ползунка секбара на градиенте и установить соответствующий цвет к примеру на кнопке или тексте.
помогите пожалуйста!

Добавлю: Значение 300.f это ширина градиента. выставил 440 и градиент стал в ширину секбара. При условии разметки мач парент.
И опять не верно. При различном разрешении экрана будет разной длины секбар. Как правильно в коде указать длину секбара?
Вложения
seekbar.png
seekbar.png (6.56 КБ) 1837 просмотров

Ответить