文字的多色渐变
问题描述:
我想为文字执行多色渐变。我使用着色器作为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(颜色均匀分布)有什么方法可以通过相对位置或其他方式获得所需输出
请建议?
答
没有测试过这一点,但我看到的文档中此重载方法:
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
尝试...... http://stackoverflow.com/questions/2680607/text-with-gradient-in-android – 2012-02-06 13:07:28
我已经使用该解决方案的一个从那里而已。 ..但其他boringLayer解决方案doesnt提供多色 – user1169079 2012-02-06 13:28:41
试试这个:http://stackoverflow.com/questions/2680607/text-with-gradient-in-android – 2012-02-06 13:10:14