이번 시간에는 imagePicker를 이용해볼 것이다. asset이 아닌 폴더에 적용된 것도 불러올 것이다.
먼저 image_picker를 인스톨한다.
1
2
flutter pub add image_picker
flutter pub get
그다음 우리의 메인 화면을 만든다.
1
2
3
4
5
6
Widget notImage () {
return GestureDetector(
onTap: imageAdd,
child: const Icon(Icons.add, size: 100,),
);
}
아이콘을 누르면 imageAdd 함수가 작동되게 한다.
1
2
3
4
5
6
7
8
9
10
class _HomeState extends State<HomeState> {
XFile? receiveImage;
void imageAdd() async {
final myImage = await ImagePicker().pickImage(source: ImageSource.gallery);
setState(() {
receiveImage = myImage;
});
}
async를 통해 await을 열고 ImagePicker().pickImage()를 받는다. 상태가 바뀌면 setState를 통해 receiveImage 함수에 넣는다. receiveImage 함수는 XFile 형식이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
Widget renderImage () {
return Image.network(receiveImage!.path);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: receiveImage == null ? notImage() : renderImage(),
)
);
}
}
이미지를 불러온다. receiveImage가 널일 경우 이미지 추가 아이콘을 띄우고, 널이 아닐 경우 renderImage를 띄운다. renderImage는 Image.network()로 받아온다.