[flutter] 플러터 앱에서 사용되는 클리퍼의 종류와 응용 예제
플러터는 Google에서 개발한 모바일 앱 개발 프레임워크로, UI 구성 요소를 사용하여 아름답고 직관적인 앱을 만들 수 있습니다. 이러한 앱에서는 종종 클리퍼(clipper)라는 개념을 사용하여 UI 요소를 원하는 모양으로 자를 수 있습니다. 이번 블로그 포스트에서는 플러터 앱에서 사용되는 클리퍼의 종류와 각각의 응용 예제를 알아보겠습니다.
클리퍼 종류
1. CustomClipper<Path>
CustomClipper<Path>
는 사용자가 직접 클리핑 경로를 정의할 수 있는 클리퍼입니다. getPath
메서드를 오버라이드하여 원하는 모양의 경로를 생성할 수 있습니다. 예를 들어, 원형 모양이나 다각형 모양 등을 생성할 수 있습니다.
class MyCustomClipper extends CustomClipper<Path> {
@override
Path getClip(Size size) {
Path path = Path();
// 원하는 클리핑 경로를 생성하는 코드 작성
return path;
}
@override
bool shouldReclip(CustomClipper<Path> oldClipper) {
return true;
}
}
2. ClipRRect
ClipRRect
는 원하는 모서리를 둥글게 자르는 클리핍 기능을 제공합니다. 둥근 테두리를 만들고 싶은 이미지나 컨테이너에 적용할 수 있습니다.
ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
// 원하는 내용 작성
),
)
3. ClipOval
ClipOval
은 원형으로 자르는 클리핍 기능을 제공합니다. 주로 프로필 사진이나 아이콘을 원형으로 보여주는데 사용됩니다.
ClipOval(
child: Image.asset('images/profile.png'),
)
4. ClipPath
ClipPath
는 원하는 모양을 지정하여 클리핑 할 수 있습니다. 예를 들어, 별모양이나 하트 모양 등 다양한 모양으로 클리핑 할 수 있습니다.
ClipPath(
clipper: MyCustomClipper(), // 원하는 클리핑 경로를 생성하는 커스텀 클리퍼 사용
child: Container(
// 원하는 내용 작성
),
)
응용 예제
1. 갤러리 앱의 이미지 선택 영역 클리핑
CustomClipper<Path> getClipper() {
return MyCustomClipper(); // 이미지 선택 영역을 클리핑하는 커스텀 클리퍼
}
ClipPath(
clipper: getClipper(),
child: Image.asset('images/photo.png'),
)
2. 프로필 사진 둥근 테두리 적용
ClipRRect(
borderRadius: BorderRadius.circular(50), // 50px 반지름의 둥근 테두리
child: Image.asset('images/profile.png'),
)
3. 로그인 버튼을 별 모양으로 클리핑
ClipPath(
clipper: StarClipper(), // 별 모양 클리핍 경로를 만드는 커스텀 클리퍼
child: ElevatedButton(
child: Text('로그인'),
onPressed: () {},
),
)
위의 예제를 참고하여 플러터 앱에서 클리퍼를 활용하는 다양한 모양과 스타일을 적용해보세요. 자유롭게 클리핑 경로를 정의하고 원하는 모양으로 UI 요소를 꾸밀 수 있습니다.
참고 자료
- Flutter 공식 문서 - Clipper class
- Flutter 공식 문서 - ClipRRect class
- Flutter 공식 문서 - ClipOval class
- Flutter 공식 문서 - ClipPath class