我想在我的SeekBar
. 我在以下代码段的第二个语句中创建 LinearGradient ,并这样做:
// Creating the drawable:
ShapeDrawable shapeDrawable = new ShapeDrawable(new RectShape());
Shader linearGradientShader = new LinearGradient(0, 0, 300, 20, new int[] { Color.RED, Color.BLUE },
new float[] { 0, 1 }, Shader.TileMode.CLAMP);
shapeDrawable.getPaint().setShader(linearGradientShader);
shapeDrawable.setBounds(10, 10, 300, 30);
seekBar.setProgressDrawable(shapeDrawable);
这里的问题是,根据规范,第 6 个参数定义为
可能为空。颜色数组中每个对应颜色的相对位置 [0..1]。如果为空,则颜色沿渐变线均匀分布。
我希望红色和蓝色均匀分布,即一半的形状应该呈现红色,一半呈现蓝色(如下图所示)。
所以我尝试了null
,new float[] {0, 0.5f}
和new float[] {0, 1}
作为第 6 个参数的值。我分别得到了以下三个结果。
显示我哪里出错了?我应该如何解决这个问题?