[플러터] 이미지에 그림자 넣기

2021. 8. 2. 22:55·Flutter/Flutter Widget Design

이미지의 바깥 선을 따라 그림자를 넣고자 할 때,

BoxShadow로는 이미지의 바깥선이 아닌 위젯에 그림자를 생성한다.

 

의도한대로 디자인하기 위해 패키지화 된 아래의 코드를 삽입해보자.

아래의 코드는 본래 패키지이지만 단순한 코드이므로 패키지로 추가하지 않고 코드로 빼서 사용하자.

 

simple_shadow | Flutter Package

A customizable shadow for any widget

pub.dev

library image_shadow;

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

class ImageShadow extends StatelessWidget {
  final Widget child;
  final double opacity;
  final double sigma;
  final Color color;
  final Offset offset;

  ImageShadow({
    required this.child,
    this.opacity = 0.5,
    this.sigma = 2,
    this.color = Colors.black,
    this.offset = const Offset(2, 2),
  });

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: <Widget>[
        Transform.translate(
          offset: offset,
          child: ImageFiltered(
            imageFilter: ImageFilter.blur(sigmaY: sigma, sigmaX: sigma),
            child: Container(
              decoration: BoxDecoration(
                border: Border.all(
                  color: Colors.transparent,
                  width: 0,
                ),
              ),
              child: Opacity(
                opacity: opacity,
                child: ColorFiltered(
                  colorFilter: ColorFilter.mode(color, BlendMode.srcATop),
                  child: child,
                ),
              ),
            ),
          ),
        ),
        child,
      ],
    );
  }
}

 

 

사용

ImageShadow(
        child: Widget
        sigma: 7,
        offset: Offset(2, 2),
      )

적용 전 링고리 캐릭터
적용 후 링고리 캐릭터

저작자표시 비영리 변경금지 (새창열림)

'Flutter > Flutter Widget Design' 카테고리의 다른 글

[플러터] ListView 경계선 흐리게 하기  (2) 2021.10.08
[플러터] List View 애니메이션  (0) 2021.08.28
[플러터] Font 변경하는 방법  (0) 2020.12.14
[Flutter] 모서리를 둥글게 / 테두리 넣기  (0) 2020.08.22
'Flutter/Flutter Widget Design' 카테고리의 다른 글
  • [플러터] ListView 경계선 흐리게 하기
  • [플러터] List View 애니메이션
  • [플러터] Font 변경하는 방법
  • [Flutter] 모서리를 둥글게 / 테두리 넣기
박유상의 개발블로그
박유상의 개발블로그
개발블로그
  • 박유상의 개발블로그
    박유상의 개발블로그
    박유상의 개발블로그
  • 전체
    오늘
    어제
    • 전체 (134)
      • Who am I (10)
        • Portfolio (4)
        • Reminiscence (5)
        • Oversea (1)
        • SiliconValley (0)
      • React (36)
        • React Basic (15)
        • React Tech (5)
        • JavaScript (7)
        • TypeScript (3)
        • CSS&HTML (3)
        • Firebase (3)
      • NodeJS (1)
        • NodeJS Basic (1)
      • Flutter (55)
        • Flutter Widget Design (5)
        • Flutter Widget Basic (8)
        • Flutter Tech (18)
        • Flutter Issue (7)
        • Flutter Web (6)
        • About Flutter (2)
        • Firebase (1)
        • Dev Env (1)
        • Dart (7)
      • Programming (31)
        • Web (1)
        • General (0)
        • Algorithm (25)
        • Python (1)
        • VS Code (2)
      • Django (0)
  • 블로그 메뉴

    • Who I AM
    • React
    • NodeJS
    • Flutter
    • Programming
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    HTML
    JavaScript
    DP
    Lingory
    파이썬
    Python
    자바스크립트
    JSON
    웹
    Redux
    map
    포트폴리오
    useTranslation
    useRef
    플러터
    github
    DART
    useState
    알고리즘
    TypeScript
    CSS
    react
    탐욕법
    플러터 웹
    Flutter
    Firebase
    flutter web
    리액트
    링고리
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박유상의 개발블로그
[플러터] 이미지에 그림자 넣기
상단으로

티스토리툴바