文字的多色渐变

问题描述:

我想为文字执行多色渐变。我使用着色器作为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); 

但是这遮蔽了三种颜色之一,即它得到混合。不是我想要的输出。我希望看到三种颜色,上面代码中的相对位置参数为null(颜色均匀分布)有什么方法可以通过相对位置或其他方式获得所需输出

请建议?

+0

尝试...... http://stackoverflow.com/questions/2680607/text-with-gradient-in-android – 2012-02-06 13:07:28

+0

我已经使用该解决方案的一个从那里而已。 ..但其他boringLayer解决方案doesnt提供多色 – user1169079 2012-02-06 13:28:41

+0

试试这个:http://stackoverflow.com/questions/2680607/text-with-gradient-in-android – 2012-02-06 13:10:14

没有测试过这一点,但我看到的文档中此重载方法:

public LinearGradient (float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile) 

参数

X0 - 渐变线

Y0开始时的x坐标 - 渐变线起点的y坐标

x1 - 渐变线末端的x坐标

Y1 - 用于梯度线

颜色的端部的y坐标 - 可能是空 - 颜色沿渐变线

位置进行分布。颜色数组中每个对应颜色的相对位置[0..1]。如果它为空,则颜色沿梯度线均匀分布。

瓦 - 着色器平铺模式

*所以基本上使INT的所有三个你希望你的颜色组成的数组,并传递到您的LinearGradient,并做相同的浮动阵列。

http://developer.android.com/reference/android/graphics/LinearGradient.html