images Upload:
Code:
Upload.dart
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:gallery_app/home.dart';
import 'package:image_picker/image_picker.dart';
// import 'package:firebase_storage/firebase_storage.dart';
// import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:toast/toast.dart';
class Upload extends StatefulWidget {
@override
_UploadState createState() => _UploadState();
}
class _UploadState extends State<Upload> {
File _image;
final picker = ImagePicker();
String downloadURL;
bool isLoading = false;
TextEditingController _titleEditingController = TextEditingController();
TextEditingController _messageEditingController = TextEditingController();
_imgFromCamera() async {
final PickedFile pickedFile =
await picker.getImage(source: ImageSource.camera);
setState(() {
if (pickedFile != null) {
_image = File(pickedFile.path);
} else {
print('No image selected.');
}
});
}
_imgFromGallery() async {
final PickedFile pickedFile =
await picker.getImage(source: ImageSource.gallery);
setState(() {
if (pickedFile != null) {
_image = File(pickedFile.path);
} else {
print('No image selected.');
}
});
}
void _showPicker(context) {
showModalBottomSheet(
context: context,
builder: (BuildContext bc) {
return SafeArea(
child: Container(
child: new Wrap(
children: <Widget>[
new ListTile(
leading: new Icon(Icons.photo_library),
title: new Text('Photo Library'),
onTap: () {
_imgFromGallery();
Navigator.of(context).pop();
}),
new ListTile(
leading: new Icon(Icons.photo_camera),
title: new Text('Camera'),
onTap: () {
_imgFromCamera();
Navigator.of(context).pop();
},
),
],
),
),
);
});
}
/////////Store Data
uploadStatus() async {
setState(() {
isLoading = true;
});
// StorageReference storageReference =
// await FirebaseStorage().ref().child("images");
// StorageUploadTask storageUploadTask = await storageReference
// .child("image" + DateTime.now().toIso8601String())
// .putFile(_image);
// StorageTaskSnapshot snapshot = await storageUploadTask.onComplete;
// downloadURL = await snapshot.ref.getDownloadURL();
// Toast.show("Image Uploaded", context);
// print("downloadURL $downloadURL");
// await FirebaseFirestore.instance.collection("images").add({
// "title": _titleEditingController.text,
// "message": _messageEditingController.text,
// "imageURL": downloadURL,
// "Time": DateTime.now(),
// });
// Navigator.pushReplacement(
// context, MaterialPageRoute(builder: (context) => HomePage()));
setState(() {
isLoading = false;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
SizedBox(
height: 15,
),
RaisedButton(
child: Text("Select Imaage"),
onPressed: () {
_showPicker(context);
},
),
SizedBox(
height: 10,
),
Center(
child: GestureDetector(
onTap: () {
_showPicker(context);
},
/////Display Image
child: _image != null
? Card(
child: Image.file(
_image,
height: 260,
width: 380,
fit: BoxFit.cover,
),
)
: Container(
child: Text(
"No Image Selected",
style: TextStyle(
color: Colors.red.shade600,
fontSize: 20,
),
),
),
),
),
//////Text field
Container(
// margin: EdgeInsets.all(17),
child: Column(
children: [
TextFormField(
controller: _titleEditingController,
validator: (value) {
if (value.isEmpty) {
return 'Please enter a Title';
}
return null;
},
decoration: InputDecoration(
hintText: "Title",
border: OutlineInputBorder(),
),
),
SizedBox(
height: 8,
),
TextFormField(
controller: _messageEditingController,
minLines: 3,
maxLines: 10,
decoration: InputDecoration(
hintText: "Message",
border: OutlineInputBorder(),
),
),
],
),
),
//////Upload Button
RaisedButton(
child: Text("Upload"),
onPressed: () {
uploadStatus();
},
),
],
),
);
}
}
home.dart
import 'package:flutter/material.dart';
import 'package:gallery_app/images.dart';
import 'package:gallery_app/upload.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage>
with SingleTickerProviderStateMixin {
var width;
TabController _tabController;
@override
void initState() {
super.initState();
_tabController = TabController(length: 2, vsync: this);
}
@override
Widget build(BuildContext context) {
width = MediaQuery.of(context).size.width;
return Scaffold(
appBar: AppBar(
title: Text("Gallery App"),
backgroundColor: Colors.pink,
bottom: PreferredSize(
child: Container(
child: TabBar(
indicator: UnderlineTabIndicator(
borderSide: BorderSide(
width: 5,
color: Colors.white70,
),
),
tabs: [
Container(
width: width * 0.4,
child: Tab(
child: Text(
"Images",
style: TextStyle(
fontSize: 17,
),
),
),
// SizedBox(width: 49),
),
Container(
width: width * 0.4,
child: Tab(
child: Text(
"Upload",
style: TextStyle(
fontSize: 17,
),
),
),
),
// Container(width: width * 0.2, child: Tab(text: "Baseball")),
// Container(width: width * 0.2, child: Tab(text: "Basketball")),
// Container(width: width * 0.2, child: Tab(text: "Kabaddi")),
],
controller: _tabController,
isScrollable: true,
),
),
preferredSize: Size.fromHeight(60.0),
),
),
body: TabBarView(
children: [
// Display(),
Upload(),
],
controller: _tabController,
),
);
}
}
images.dart
// import 'package:flutter/material.dart';
// import 'dart:io';
// import 'package:firebase_core/firebase_core.dart';
// import 'package:cloud_firestore/cloud_firestore.dart';
// // import 'package:flutter_downloader/flutter_downloader.dart';
// class Display extends StatefulWidget {
// @override
// _DisplayState createState() => _DisplayState();
// }
// class _DisplayState extends State<Display> {
// File _image;
// String downloadURL;
// donloadimage() async {
// // final id = await FlutterDownloader.enqueue(
// // url:
// // "https://firebasestorage.googleapis.com/v0/b/storage-3cff8.appspot.com/o/2020-05-29%2007-18-34.mp4?alt=media&token=841fffde-2b83-430c-87c3-2d2fd658fd41",
// // savedDir: _image.path,
// // fileName: "download",
// // showNotification: true,
// // openFileFromNotification: true,
// // );
// }
// @override
// void initState() {
// super.initState();
// Firebase.initializeApp().whenComplete(() {
// print("completed");
// setState(() {});
// });
// }
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// body: StreamBuilder(
// stream: FirebaseFirestore.instance.collection("images").snapshots(),
// builder: (context, snapshot) {
// return !snapshot.hasData
// ? Center(
// child: CircularProgressIndicator(),
// )
// : ListView.builder(
// itemCount: snapshot.data.documents.length,
// itemBuilder: (context, index) {
// DocumentSnapshot alldata = snapshot.data.documents[index];
// return Column(
// children: [
// Card(
// child: ListTile(
// leading: Image.network(alldata["imageURL"]),
// title: Text(alldata["title"]),
// subtitle: Text(alldata["message"]),
// trailing: RaisedButton(
// child: Text("Download"),
// onPressed: () async {
// donloadimage();
// },
// ),
// ),
// ),
// ],
// );
// },
// );
// },
// ),
// );
// }
// }
0 Comments