2012-02-06 71 views
1

我想爲文字執行多色漸變。我使用着色器作爲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

回答

0

沒有測試過這一點,但我看到的文檔中此重載方法:

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