質問: テキストの多色グラデーション 私はテキストの多色グラデーションを実行したい。私はスタックフローのメンバーの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色をそのまま見たいと思います。上のコードに相対位置のパラメータがあります。そのヌル(色は均等に分布しています)は、相対的な位置などで必要な出力を得る方法です 提案してください?
回答: これはテストしていませんが、ドキュメントでこのオーバーロードされたメソッドを見ました: ``` 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