LinearGradientPaint — 선형 그라데이션 채우기

LinearGradientPaint — 선형 그라데이션 채우기

LinearGradientPaint는 Shape를 선형(linear) 색상 그라데이션 패턴으로 채우는 방법을 제공해요. 두 개 이상의 그라데이션 색을 지정하면 각 색 사이에서 보간(interpolation)을 제공해요.

출처: Java API Reference

본문

public final class LinearGradientPaint extends MultipleGradientPaint

시작점과 끝점을 지정해서 사용자 공간에서 그라데이션이 시작·종료되는 위치를 정의해요. 그리고 색을 그라데이션을 따라 어떻게 분포할지 나타내는 float 배열을 제공해야 해요. 이 값들은 0.0부터 1.0 사이여야 하고 그라데이션의 키프레임처럼 동작해요.

첫 키프레임을 0으로, 마지막 키프레임을 1로 설정하지 않으면 그 위치에 키프레임이 만들어지고 첫·끝 색이 그곳에 복제돼요.

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

이 코드는 처음 20%는 빨강과 흰색 사이, 나머지 80%는 흰색과 파랑 사이를 보간하는 LinearGradientPaint를 만들어요.

CycleMethod

시작·끝점 바깥 공간을 채울 때의 동작을 선택할 수 있어요.

  • NO_CYCLE — 기본값. 끝점 색으로 나머지 영역을 채워요.
  • REFLECTION — 그라데이션을 반사시켜 반복해요.
  • REPEAT — 그라데이션을 반복해요.

colorSpace

보간을 수행할 색 공간을 지정해요. 기본은 sRGB, 또는 선형화된 RGB를 선택할 수 있어요.

생성자 예외

  • NullPointerExceptionfractions 배열이나 colors 배열이 null일 때
  • IllegalArgumentException — 시작·끝점이 같거나, fractions.length != colors.length이거나, 색이 2개 미만이거나, 분수 값이 0.0~1.0 범위를 벗어나거나, 분수가 엄격히 증가하지 않을 때

더 알아보기