SeekBar и градиент
Добавлено: 12 авг 2017, 17:46
Всем доброго времени суток!
получился вот такой seekbar (во вложении).
задача: отследить положение ползунка секбара на градиенте и установить соответствующий цвет к примеру на кнопке или тексте.
помогите пожалуйста!
Добавлю: Значение 300.f это ширина градиента. выставил 440 и градиент стал в ширину секбара. При условии разметки мач парент.
И опять не верно. При различном разрешении экрана будет разной длины секбар. Как правильно в коде указать длину секбара?
Код: Выделить всё
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();
}
});
задача: отследить положение ползунка секбара на градиенте и установить соответствующий цвет к примеру на кнопке или тексте.
помогите пожалуйста!
Добавлю: Значение 300.f это ширина градиента. выставил 440 и градиент стал в ширину секбара. При условии разметки мач парент.
И опять не верно. При различном разрешении экрана будет разной длины секбар. Как правильно в коде указать длину секбара?