Search
🧮

Flutter 에서 Image Asset 사용하기

생성일
2021/06/15 12:52
태그
Flutter
속성

1. 'assets' 디렉토리 추가

프로젝트의 Root Directory 의 하위 디렉토리로 assets를 추가합니다. 우리가 앱을 개발할 때 사용하는 lib 디렉토리와 같은 depth에 만들어야 합니다. 물론 assets 말고 다름 이름도 사용 가능합니다.
현재 진행중인 프로젝트에서는 image 외 다른 유형의 리소스를 사용할 예정은 없지만, 추후 확장성을 위해 assets 하위에 images 디렉토리를 추가로 만들었습니다.

2. pubspec.yaml 수정

Flutter 프로젝트에서 assets의 리소스들을 사용할 수 있도록 pubspec.yaml 파일을 수정해야 합니다.
name: chai_booster description: A new Flutter project. publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: sdk: ">=2.7.0 <3.0.0" dependencies: flutter: sdk: flutter {dependencies... 생략 ...} dev_dependencies: build_runner: flutter_test: sdk: flutter flutter: uses-material-design: true assets: - assets/images/ 👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈👈
YAML
복사

3. Dependency Install

flutter pub get
YAML
복사

4. Example

import 'package:chai_booster/Providers/Auth/AuthProvider.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; class LoginPage extends StatefulWidget { LoginPage({ Key key, this.title }) : super(key: key); final String title; _LoginPageState createState() => _LoginPageState(); } class _LoginPageState extends State<LoginPage> { AuthProvider authProvider; Widget build(BuildContext context) { authProvider = Provider.of<AuthProvider>(context); return Scaffold( body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, mainAxisSize: MainAxisSize.max, children: <Widget>[ Image.asset('assets/images/booster.png'), SizedBox(height: 80), Padding( padding: EdgeInsets.symmetric(horizontal: 20), child: SizedBox( child: ElevatedButton( onPressed: () => { authProvider.signInAnonymously() }, child: Text('차이부스터 시작하기'), ), width: double.infinity, height: 44, ) ), SizedBox(height: 12,) ], ), ), ); } }
Dart
복사

4. 후기

역시 RN 보단 Flutter