1
1
import 'package:flutter/material.dart' ;
2
+ import 'package:image_picker_modern/image_picker_modern.dart' ;
3
+ import 'dart:io' ;
2
4
3
5
void main () => runApp (MyApp ());
4
6
@@ -45,6 +47,16 @@ class MyHomePage extends StatefulWidget {
45
47
46
48
class _MyHomePageState extends State <MyHomePage > {
47
49
int _counter = 0 ;
50
+ File _image;
51
+
52
+ Future getImage () async {
53
+ var image = await ImagePicker .pickImage (source: ImageSource .gallery);
54
+
55
+ setState (() {
56
+ _image = image;
57
+ });
58
+ print ("image is Selected" );
59
+ }
48
60
49
61
void _incrementCounter () {
50
62
setState (() {
@@ -59,53 +71,18 @@ class _MyHomePageState extends State<MyHomePage> {
59
71
60
72
@override
61
73
Widget build (BuildContext context) {
62
- // This method is rerun every time setState is called, for instance as done
63
- // by the _incrementCounter method above.
64
- //
65
- // The Flutter framework has been optimized to make rerunning build methods
66
- // fast, so that you can just rebuild anything that needs updating rather
67
- // than having to individually change instances of widgets.
68
74
return Scaffold (
69
75
appBar: AppBar (
70
- // Here we take the value from the MyHomePage object that was created by
71
- // the App.build method, and use it to set our appbar title.
72
- title: Text (widget.title),
76
+ title: Text ('Image Picker Example' ),
73
77
),
74
78
body: Center (
75
- // Center is a layout widget. It takes a single child and positions it
76
- // in the middle of the parent.
77
- child: Column (
78
- // Column is also a layout widget. It takes a list of children and
79
- // arranges them vertically. By default, it sizes itself to fit its
80
- // children horizontally, and tries to be as tall as its parent.
81
- //
82
- // Invoke "debug painting" (press "p" in the console, choose the
83
- // "Toggle Debug Paint" action from the Flutter Inspector in Android
84
- // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
85
- // to see the wireframe for each widget.
86
- //
87
- // Column has various properties to control how it sizes itself and
88
- // how it positions its children. Here we use mainAxisAlignment to
89
- // center the children vertically; the main axis here is the vertical
90
- // axis because Columns are vertical (the cross axis would be
91
- // horizontal).
92
- mainAxisAlignment: MainAxisAlignment .center,
93
- children: < Widget > [
94
- Text (
95
- 'You have pushed the button this many times:' ,
96
- ),
97
- Text (
98
- '$_counter ' ,
99
- style: Theme .of (context).textTheme.display1,
100
- ),
101
- ],
102
- ),
79
+ child: _image == null ? Text ('No image selected.' ) : Image .file (_image),
103
80
),
104
81
floatingActionButton: FloatingActionButton (
105
- onPressed: _incrementCounter ,
106
- tooltip: 'Increment ' ,
107
- child: Icon (Icons .add ),
108
- ), // This trailing comma makes auto-formatting nicer for build methods.
82
+ onPressed: getImage ,
83
+ tooltip: 'Pick Image ' ,
84
+ child: Icon (Icons .add_a_photo ),
85
+ ),
109
86
);
110
87
}
111
88
}
0 commit comments