public final class LinearGradientPaint extends MultipleGradientPaint
LinearGradientPaint クラスは、Shape をカラーの線形グラデーションパターンで塗りつぶす方法を提供します。ユーザーはグラデーションの色を 2 色以上指定でき、この場合の描画では、各色の間の補間が行われます。また、ユーザー空間内で色のグラデーションの開始位置と終了位置を定義する始点と終点を指定することもできます。
ユーザーは、グラデーションでの色の分布方法を指定する float 配列を指定する必要があります。これらの値は 0.0 - 1.0 の範囲内にあって、グラデーションに沿ったキーフレームのように機能する必要があります。これらの値によって、グラデーションを厳密に特定の色にする位置をマークします。
ユーザーが最初のキーフレーム値を 0 に設定しない場合や、最後のキーフレーム値を 1 に設定しない場合は、キーフレームがその位置に作成され、最初の色や最後の色がその位置に複製されます。そのため、ユーザーがグラデーションを構築するために次の配列を指定した場合、
{Color.BLUE, Color.RED}, {.3f, .7f}
これは、次のキーフレームを持つグラデーションに変換されます。
{Color.BLUE, Color.BLUE, Color.RED, Color.RED}, {0f, .3f, .7f, 1f}
ユーザーは、CycleMethod を REFLECTION または REPEAT に設定することによって、始点と終点の外側の領域を塗りつぶすときに LinearGradientPaint オブジェクトで実行される動作を選択することもできます。 反射グラデーションまたは繰り返しグラデーションでは、1 つのグラデーションの中にある任意の 2 色の間の距離は、始点と終点の間のそれら 2 色の距離と同じになります。ピクセルの粒度でのサンプリングのために、間隔にわずかな変動がいくつか発生する可能性があります。 循環方法を指定しない場合は、デフォルトで NO_CYCLE が選択されます。つまり、残りの領域を塗りつぶすために端点の色が使用されます。
colorSpace パラメータでは、補間が実行されるカラースペース (デフォルトの sRGB または線形化された RGB) を指定できます。
次のコードは、LinearGradientPaint の一般的な使い方を示しています。
Point2D start = new Point2D.Float(0, 0);
Point2D end = new Point2D.Float(50, 50);
float[] dist = {0.0f, 0.2f, 1.0f};
Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};
LinearGradientPaint p =
new LinearGradientPaint(start, end, dist, colors);
このコードにより、LinearGradientPaint が作成され、グラデーションの最初の 20% は赤と白の間で補間され、残りの 80% は白と青の間で補間されます。
3 つの循環方法のそれぞれについて、上記のコード例の結果は次のイメージのようになります。
Paint, Graphics2D.setPaint(java.awt.Paint)MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethodBITMASK, OPAQUE, TRANSLUCENT| コンストラクタと説明 |
|---|
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
デフォルトの
NO_CYCLE 繰り返しメソッドと SRGB カラースペースで LinearGradientPaint を構築します。 |
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの
SRGB カラースペースで LinearGradientPaint を構築します。 |
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
デフォルトの
NO_CYCLE 繰り返しメソッドと SRGB カラースペースで LinearGradientPaint を構築します。 |
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの
SRGB カラースペースで LinearGradientPaint を構築します。 |
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
LinearGradientPaint を構築します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
PaintContext |
createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
カラーの線形グラデーションパターンを生成するために使用される
PaintContext を作成して返します。 |
Point2D |
getEndPoint()
放射状グラデーションの焦点のコピーを返します。
|
Point2D |
getStartPoint()
グラデーション軸の始点のコピーを返します。
|
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparencypublic LinearGradientPaint(float startX,
float startY,
float endX,
float endY,
float[] fractions,
Color[] colors)
NO_CYCLE 繰り返しメソッドと SRGB カラースペースで LinearGradientPaint を構築します。startX - ユーザー空間内のグラデーション軸の始点の X 座標startY - ユーザー空間内のグラデーション軸の始点の Y 座標endX - ユーザー空間内のグラデーション軸の終点の X 座標endY - ユーザー空間内のグラデーション軸の終点の Y 座標fractions - グラデーションに沿った色の分布を指定する、0.0 から 1.0 までの範囲の数値colors - 各小数値に対応する色の配列NullPointerException - fractions 配列が null であるか、colors 配列が null である場合IllegalArgumentException - 始点と終点が同じ点である場合、fractions.length != colors.length である場合、colors のサイズが 2 がより小さい場合、fractions 値が 0.0 より小さいか 1.0 より大きい場合、または fractions が厳密に昇順で指定されていない場合public LinearGradientPaint(float startX,
float startY,
float endX,
float endY,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod)
SRGB カラースペースで LinearGradientPaint を構築します。startX - ユーザー空間内のグラデーション軸の始点の X 座標startY - ユーザー空間内のグラデーション軸の始点の Y 座標endX - ユーザー空間内のグラデーション軸の終点の X 座標endY - ユーザー空間内のグラデーション軸の終点の Y 座標fractions - グラデーションに沿った色の分布を指定する、0.0 から 1.0 までの範囲の数値colors - 各小数値に対応する色の配列cycleMethod - NO_CYCLE、REFLECT、REPEAT のいずれかNullPointerException - fractions 配列が null であるか、colors 配列が null であるか、または cycleMethod が null である場合IllegalArgumentException - 始点と終点が同じ点である場合、fractions.length != colors.length である場合、colors のサイズが 2 がより小さい場合、fractions 値が 0.0 より小さいか 1.0 より大きい場合、または fractions が厳密に昇順で指定されていない場合public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
NO_CYCLE 繰り返しメソッドと SRGB カラースペースで LinearGradientPaint を構築します。start - ユーザー空間内のグラデーション軸の始点 Point2Dend - ユーザー空間内のグラデーション軸の終点 Point2Dfractions - グラデーションに沿った色の分布を指定する、0.0 から 1.0 までの範囲の数値colors - 各小数値に対応する色の配列NullPointerException - いずれかの点が null の場合、fractions 配列が null の場合、または colors 配列が null の場合IllegalArgumentException - 始点と終点が同じ点である場合、fractions.length != colors.length である場合、colors のサイズが 2 がより小さい場合、fractions 値が 0.0 より小さいか 1.0 より大きい場合、または fractions が厳密に昇順で指定されていない場合public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
SRGB カラースペースで LinearGradientPaint を構築します。start - ユーザー空間内のグラデーション軸の始点 Point2Dend - ユーザー空間内のグラデーション軸の終点 Point2Dfractions - グラデーションに沿った色の分布を指定する、0.0 から 1.0 までの範囲の数値colors - 各小数値に対応する色の配列cycleMethod - NO_CYCLE、REFLECT、REPEAT のいずれかNullPointerException - いずれかの点が null であるか、fractions 配列が null であるか、colors 配列が null であるか、または cycleMethod が null である場合IllegalArgumentException - 始点と終点が同じ点である場合、fractions.length != colors.length である場合、colors のサイズが 2 がより小さい場合、fractions 値が 0.0 より小さいか 1.0 より大きい場合、または fractions が厳密に昇順で指定されていない場合@ConstructorProperties(value={"startPoint","endPoint","fractions","colors","cycleMethod","colorSpace","transform"}) public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
LinearGradientPaint を構築します。start - ユーザー空間内のグラデーション軸の始点 Point2Dend - ユーザー空間内のグラデーション軸の終点 Point2Dfractions - グラデーションに沿った色の分布を指定する、0.0 から 1.0 までの範囲の数値colors - 各小数値に対応する色の配列cycleMethod - NO_CYCLE、REFLECT、REPEAT のいずれかcolorSpace - 補間に使用するカラースペースであり、SRGB または LINEAR_RGB のどちらかgradientTransform - グラデーションに適用する変換NullPointerException - いずれかの点が null であるか、fractions 配列が null であるか、colors 配列が null であるか、cycleMethod が null であるか、colorSpace が null であるか、または gradientTransform が null である場合IllegalArgumentException - 始点と終点が同じ点である場合、fractions.length != colors.length である場合、colors のサイズが 2 がより小さい場合、fractions 値が 0.0 より小さいか 1.0 より大きい場合、または fractions が厳密に昇順で指定されていない場合public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
PaintContext を作成して返します。null パラメータの処理については、Paint インタフェース内のメソッドの specification を参照してください。cm - 呼び出し元がピクセルデータを受信するためのもっとも便利な形式を表す推奨される ColorModel、または推奨値がない場合は null。deviceBounds - 描画されるグラフィックスプリミティブのデバイス空間でのバウンディングボックス。userBounds - 描画されるグラフィックスプリミティブのユーザー空間でのバウンディングボックス。transform - ユーザー空間からデバイス空間への AffineTransform。hints - コンテキストオブジェクトが描画の選択肢の中から選択するために使用できるヒントのセット。PaintContext。Paint, PaintContext, ColorModel, Rectangle, Rectangle2D, AffineTransform, RenderingHintspublic Point2D getStartPoint()
LinearGradientPaint の最初の色を固定する点のコピーを表す Point2D オブジェクトpublic Point2D getEndPoint()
LinearGradientPaint の最後の色を固定する点のコピーを表す Point2D オブジェクト バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.