テキストの多色グラデーション

私はテキストの多色グラデーションを実行したい。私はスタックフローのメンバーの1つとしてトリックを提供シェーダを使用しています。以下は、私が多色入力を与えているコードです

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);  

これは3つの色のうちの1つを色あせし、すなわち混合物を得る。私が望む出力ではありません。私は3色をそのまま見たいと思います。上のコードに相対位置のパラメータがあります。そのヌル(色は均等に分布しています)は、相対的な位置などで必要な出力を得る方法です

提案してください?

1
私はそこからの解決策の1つを使用しました...しかし、他のboringLayerソリューションは多色を提供しません
追加された 著者 user1169079,
私はそこからの解決策の1つだけを使用しましたが、他の退屈な層ソリューションは多色を提供しません。ここでは少なくともシェイダーは色の配列を持つことができ、私はそれを微調整することができます
追加された 著者 user1169079,
これを試してみてください... stackoverflow.com/questions/2680607/ …
追加された 著者 Nitesh Khosla,
これを試してみてください: stackoverflow.com/questions/2680607/…
追加された 著者 Nitesh Khosla,

1 答え

これはテストしていませんが、ドキュメントでこのオーバーロードされたメソッドを見ました:

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座標

colors - グラデーションラインに沿って配色される色

positions - nullの場合があります。 colors配列内の対応する各色の相対位置[0..1]。これがnullの場合、色はグラデーションラインに沿って均等に分散されます。

tile - シェーダタイリングモード

*基本的には、必要な3つの色すべてでintの配列を作成し、それをLinearGradientに渡し、floatの配列で同じ処理を行います。

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

0
追加された