|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.MultipleGradientPaint java.awt.LinearGradientPaint
public final class LinearGradientPaint
LinearGradientPaint
類別提供利用線性顏色漸變網要填充 Shape
的方式。使用者可以指定兩種或多種漸變顏色,並且此繪製將在顏色與顏色之間提供一個插值。使用者還可以指定起始點和結束點,它們定義了顏色漸變在使用者空間中的開始和結束位置。
使用者必須提供一個 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}
在填充起始點和結束點以外的顏色時,使用者也可以選擇 LinearGradientPaint
應執行的動作。如果沒有指定循環方法,則將預設選擇 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% 的白色和藍色之間。
此圖像演示了對以上範例程式碼使用三種循環方法時的情形:
Paint
,
Graphics2D.setPaint(java.awt.Paint)
巢狀類別摘要 |
---|
從類別 java.awt.MultipleGradientPaint 繼承的巢狀類別/介面 |
---|
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod |
欄位摘要 |
---|
從介面 java.awt.Transparency 繼承的欄位 |
---|
BITMASK, 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()
返回漸變軸起始點的副本。 |
從類別 java.awt.MultipleGradientPaint 繼承的方法 |
---|
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public 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
- 使用者空間中漸變軸的起始 Point2D
end
- 使用者空間中漸變軸的結束 Point2D
fractions
- 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
- 使用者空間中漸變軸的起始 Point2D
end
- 使用者空間中漸變軸的結束 Point2D
fractions
- 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
public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
LinearGradientPaint
。
start
- 使用者空間中漸變軸的起始 Point2D
end
- 使用者空間中漸變軸的結束 Point2D
fractions
- 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
。因為傳遞給 createContext 的 ColorModel 參數只是一個提示,所以 Paint 的實作應該接受 ColorModel 的 null 參數。注意,如果應用程序沒有首選的特定 ColorModel,則為 null 的 ColorModel 參數將給予 Paint 實作完全的選擇餘地,使其在光柵處理中使用其首選最高效的 ColorModel。
因為 API 文檔在 1.4 版本之前沒有關於此項的具體描述,因此可能有一些 Paint
實作不能接受 null ColorModel
參數。如果開發人員正在編寫程式碼將 null ColorModel
參數從任意源傳遞給 Paint
物件的 createContext
方法,則為了實作安全的編碼,應該為這些物件建構一個非 null ColorModel
,使其拋出 NullPointerException
。
cm
- 接收 Paint
資料的 ColorModel
。這只用作一個提示。deviceBounds
- 正在呈現的圖形圖元的設備空間邊界框userBounds
- 正在呈現的圖形圖元的使用者空間邊界框transform
- 從使用者空間到設備空間的 AffineTransform
hints
- 上下文物件用於選擇所呈現內容的提示
PaintContext
PaintContext
public Point2D getStartPoint()
Point2D
物件,它是此 LinearGradientPaint
第一種顏色著色點的副本。public Point2D getEndPoint()
Point2D
物件,它是此 LinearGradientPaint
最後一種顏色著色點的副本
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。