Я создал панель поиска с пользовательским рисунком LinearGradient
. Однако я хочу иметь возможность изменять коэффициент градиента для каждого цвета, здесь я использую 3 цвета, они распределяются одинаково, если positions
равно null
. На самом деле я хочу предоставить ширину или соотношение для каждого цвета, например, изменить соотношение красного и установить его только в форме 0% до 10% от seekBar
width
.
Здесь я хочу установить от 0% до 10% красного, от 10% до 80% желтого и от 80% до 100% красного и иметь возможность динамически изменять значения ширины для каждого цвета.
Возможно ли это, и если да, то может ли кто-нибудь подсказать, как это сделать?
Мой код
private ShapeDrawable getSeekBarGradientDrawable(int mRectWidth, int mRectHeight) {
int[] colors = new int[] { Color.RED, Color.YELLOW, getResources().getColor(R.color.primaryButton, null)};
DisplayMetrics displayMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels - (int) getResources().getDimension(R.dimen.margin_padding_size_medium);
Shader shader = new LinearGradient(
0,
0,
width,
mRectHeight,
colors, new float[] {0.1f,0.7f,0.2f},
Shader.TileMode.CLAMP);
ShapeDrawable shape = new ShapeDrawable(new RectShape());
shape.getPaint().setShader(shader);
return shape;
}
Изображение видно из текущих настроек, это не так, как я описал.