2012-02-06 9 views
1

テキストに対して多色グラデーションを実行したい。私はスタックフローのメンバーの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色のいずれかを離れて色合い。私が望む出力ではありません。私は3色をそのまま見たいと思っています。上記のコードで相対位置のパラメータがあります。ヌル(色は均等に分布しています)は、相対的な位置などで必要な出力を得る方法です。

お勧めしますか?

+0

http://stackoverflow.com/questions/2680607/text-with-gradient-in-android ...私はそこから解決策のいずれかを使用している –

+0

これを試してみてください。 ..しかし、他の退屈な層のソリューションは、多色を提供しません – user1169079

+0

これを試してください:http://stackoverflow.com/questions/2680607/text-with-gradient-in-android –

答えて

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

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

*だから、基本的にあなたが望むあなたの色の3つのすべてをintの配列を作成し、あなたてLinearGradientにそれを渡し、フロートの配列と同じことを行います。

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

関連する問題