Android 文本的多色渐变
我想为文本执行多色渐变。我使用着色器作为Stackflow成员之一提供了技巧。下面是我提供多色输入的代码Android 文本的多色渐变,android,Android,我想为文本执行多色渐变。我使用着色器作为Stackflow成员之一提供了技巧。下面是我提供多色输入的代码 Shader textShader=new LinearGradient(100, 375, 100, 450, new int[]{res.getColor(R.color.Red),res.getColor(R.color.Green),Color.MAGENTA}, null, TileMode.CLAMP);
Shader textShader=new LinearGradient(100, 375, 100, 450,
new int[]{res.getColor(R.color.Red),res.getColor(R.color.Green),Color.MAGENTA},
null, TileMode.CLAMP);
但这会使三种颜色中的一种变暗,也就是说,它会混合。不是我想要的输出。我希望三种颜色都是原样,在我上面的代码中有相对位置的参数,它的空值(颜色是均匀分布的)有没有任何方法可以通过相对位置或其他方式获得所需的输出
请建议?尚未测试此方法,但我在文档中看到了此重载方法:
public LinearGradient (float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile)
参数
x0-渐变线起点的x坐标
y0-渐变线起点的y坐标
x1-渐变线末端的x坐标
y1-渐变线末端的y坐标
颜色-沿渐变线分布的颜色
位置-可以为空。颜色数组中每个对应颜色的相对位置[0..1]。如果该值为空,则颜色沿渐变线均匀分布
平铺-着色器平铺模式
*所以基本上,用你想要的三种颜色做一个int数组,并将其传递到LinearGradient中,然后用float数组做同样的事情
试试这个。。。试试这个:我只使用了其中一个解决方案。。。但其他渗硼层溶液不提供多色,我只使用了其中一种溶液。。。但其他渗硼层溶液不能提供多色。在这里,至少着色器允许我有一个颜色数组,我可以调整它