Merhabalar. Image Picker kullanarak belli bir yuvarlağın içerisindeki resmi galeriden veya kameradan alarak değiştirmek istiyorum. (Profil Fotoğrafı Değiştirme)
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
void main() {
runApp(Benimuygulama(),
);
}
class Benimuygulama extends StatefulWidget {
Benimuygulama({Key key}) : super(key: key);
@override
_Benimuygulama createState() => _Benimuygulama();
}
class _Benimuygulama extends State<Benimuygulama> {
PickedFile _imagefile;
ImagePicker _picker = new ImagePicker();
// Buralara ImagePicker kodları gelcek
@override
Widget build(BuildContext context) {
return
MaterialApp(
home: Scaffold(
backgroundColor: Colors.blueAccent,
body: SafeArea(
child: Column(
children: <Widget>[
ImagePick(),
SizedBox(
height: 20,
)
],
),
),
),
);
}
Widget ImagePick(){
return Center(
child: Stack(
children:<Widget> [
CircleAvatar(
radius:80,
backgroundImage: _imagefile == null ? AssetImage('resimler/spiderman.png')
:FileImage(File(_imagefile.path)),
),
Positioned(
bottom: 20.0,
right: 20.0,
child: InkWell(
onTap: (){
showModalBottomSheet(
context: context, // context hatası neden?
builder: ((builder)=> bottomSheet())
);
},
child: Icon(
Icons.camera_alt,
color: Colors.teal,
size: 28.0,
),
),
)
],
),
);
}
Widget bottomSheet () {
return Container(
height: 100,
width:MediaQuery.of(context).size.width, // contextte hata veriyor neden?
margin: EdgeInsets.symmetric(
horizontal: 20,
vertical: 20,
),
child: Column(children:<Widget> [
Text(
"PP seçiniz",
style: TextStyle(
fontSize: 20.0,
),
),
SizedBox(
height: 20,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children:<Widget> [
FlatButton.icon(
icon: Icon(Icons.camera),
onPressed: (){
takePhoto(ImageSource.camera);
},
label: Text("Camera"),
),
FlatButton.icon(
icon: Icon(Icons.image),
onPressed: (){
takePhoto(ImageSource.gallery);
},
label: Text("Gallery"),
),
],
),
],
),
);
}
void takePhoto(ImageSource source) async {
final pickedFile = await _picker.getImage(
source: source,
);
setState(() {
_imagefile = pickedFile;
});
}
@override
State<StatefulWidget> createState() {
// TODO: implement createState
throw UnimplementedError();
}
}
Kodumda hiç bir hata gözükmüyor ama butona bastığımda boş çalışıyor.
Bu hatayı nasıl çözebilirim.
Not: Flutter’da yeniyim.
Yardımlarınız için şimdiden teşekkür ederim.
Kodu yazdığım video kaynağındaki adam başarıyla gerçekleştirmiş ama bende olmuyor.
Kaynak: