[flutter] photo_view 패키지와 함께 사용할 수 있는 투명 이미지 뷰어 만들기

이번 포스트에서는 Flutter의 photo_view 패키지를 사용하여 투명한 이미지 뷰어를 만드는 방법에 대해 알아보겠습니다.

1. photo_view 패키지 추가하기

먼저, 프로젝트에 photo_view 패키지를 추가해야 합니다. pubspec.yaml 파일을 열고, dependencies 섹션에 다음과 같이 패키지를 추가합니다.

dependencies:
  photo_view: ^0.12.0

저장한 다음, 터미널에서 flutter packages get 명령을 실행하여 패키지를 가져옵니다.

2. 투명 이미지 뷰어 만들기

photo_view 패키지를 사용하면 간단하게 투명 이미지 뷰어를 만들 수 있습니다. 아래의 코드를 참고하여 이미지 뷰어를 만들어 보세요.

import 'package:flutter/material.dart';
import 'package:photo_view/photo_view.dart';

class TransparentImageViewer extends StatelessWidget {
  final String imageUrl;

  TransparentImageViewer(this.imageUrl);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.black,
      child: PhotoView(
        imageProvider: NetworkImage(imageUrl),
        backgroundDecoration: BoxDecoration(
          color: Colors.transparent,
        ),
      ),
    );
  }
}

위의 코드에서 TransparentImageViewer 클래스는 imageUrl을 인자로 받아 투명 이미지 뷰어를 생성합니다. Containercolor 속성을 Colors.black으로 설정하면 배경이 검은색으로 설정됩니다. PhotoView 위젯의 imageProvider를 통해 이미지를 로드하고, backgroundDecoration을 통해 배경을 투명하게 설정할 수 있습니다.

3. 투명 이미지 뷰어 사용하기

이제 위에서 생성한 TransparentImageViewer를 사용하여 투명 이미지 뷰어를 화면에 나타내는 방법에 대해 알아보겠습니다. 예를 들어, 이미지가 클릭되었을 때 투명 이미지 뷰어가 나타나도록 할 수 있습니다.

GestureDetector(
  onTap: () {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => TransparentImageViewer(imageUrl),
      ),
    );
  },
  child: Image.network(imageUrl),
)

위의 코드에서 GestureDetector 위젯은 이미지가 클릭되었을 때를 감지하고, TransparentImageViewer로 이동하여 투명 이미지 뷰어를 화면에 나타냅니다. Image.network 위젯을 사용하여 이미지를 로드합니다.

이제 photo_view 패키지와 함께 사용할 수 있는 투명 이미지 뷰어를 만들었습니다. photo_view 패키지에는 다양한 기능과 옵션을 제공하므로, 필요에 따라 다양한 설정을 추가하여 사용할 수 있습니다.

참고 자료