Skip to content

Commit 72f37f9

Browse files
image picker implemented
1 parent 1641b3e commit 72f37f9

File tree

4 files changed

+29
-47
lines changed

4 files changed

+29
-47
lines changed

android/gradle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
org.gradle.jvmargs=-Xmx1536M
2+
android.useAndroidX = true
3+
android.enableJetifier = true
24

lib/main.dart

Lines changed: 18 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import 'package:flutter/material.dart';
2+
import 'package:image_picker_modern/image_picker_modern.dart';
3+
import 'dart:io';
24

35
void main() => runApp(MyApp());
46

@@ -45,6 +47,16 @@ class MyHomePage extends StatefulWidget {
4547

4648
class _MyHomePageState extends State<MyHomePage> {
4749
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+
}
4860

4961
void _incrementCounter() {
5062
setState(() {
@@ -59,53 +71,18 @@ class _MyHomePageState extends State<MyHomePage> {
5971

6072
@override
6173
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.
6874
return Scaffold(
6975
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'),
7377
),
7478
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),
10380
),
10481
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+
),
10986
);
11087
}
11188
}

pubspec.lock

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ packages:
4646
description: flutter
4747
source: sdk
4848
version: "0.0.0"
49+
image_picker_modern:
50+
dependency: "direct main"
51+
description:
52+
name: image_picker_modern
53+
url: "https://pub.dartlang.org"
54+
source: hosted
55+
version: "0.4.12+3"
4956
matcher:
5057
dependency: transitive
5158
description:
@@ -144,3 +151,4 @@ packages:
144151
version: "2.0.8"
145152
sdks:
146153
dart: ">=2.2.2 <3.0.0"
154+
flutter: ">=0.1.4 <2.0.0"

pubspec.yaml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,34 +23,29 @@ dependencies:
2323
# The following adds the Cupertino Icons font to your application.
2424
# Use with the CupertinoIcons class for iOS style icons.
2525
cupertino_icons: ^0.1.2
26+
image_picker_modern: ^0.4.12+2
2627

2728
dev_dependencies:
2829
flutter_test:
2930
sdk: flutter
3031

31-
3232
# For information on the generic Dart part of this file, see the
3333
# following page: https://dart.dev/tools/pub/pubspec
3434

3535
# The following section is specific to Flutter.
3636
flutter:
37-
3837
# The following line ensures that the Material Icons font is
3938
# included with your application, so that you can use the icons in
4039
# the material Icons class.
4140
uses-material-design: true
42-
4341
# To add assets to your application, add an assets section, like this:
4442
# assets:
4543
# - images/a_dot_burr.jpeg
4644
# - images/a_dot_ham.jpeg
47-
4845
# An image asset can refer to one or more resolution-specific "variants", see
4946
# https://flutter.dev/assets-and-images/#resolution-aware.
50-
5147
# For details regarding adding assets from package dependencies, see
5248
# https://flutter.dev/assets-and-images/#from-packages
53-
5449
# To add custom fonts to your application, add a fonts section here,
5550
# in this "flutter" section. Each entry in this list should have a
5651
# "family" key with the font family name, and a "fonts" key with a

0 commit comments

Comments
 (0)