一般的项目中,我们都会用到拍照或者使用照片,这里我们就介绍下flutter的插件。image_picker
在pubspec.yaml中添加依赖
dependencies:
image_picker: ^0.6.2+3
You can install packages from the command line:
with Flutter:
$ flutter pub get
对于iOS的开发者千万不要忘了权限问题。
<key>NSPhotoLibraryUsageDescription</key>
<string>请允许访问</string>
<key>NSCameraUsageDescription</key>
<string>请允许访问</string>
<key>NSMicrophoneUsageDescription</key>
<string>请允许访问</string>
在dart文件中导入
import 'package:image_picker/image_picker.dart';
效果如下:
具体代码如下:
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
// import 'package:multi_image_picker/multi_image_picker.dart';
class MinePage extends StatelessWidget{
@override
Widget build(BuildContext context) {
return MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: Text("我的"),
),
body: BodyWidget(),
),
);
}
}
class BodyWidget extends StatefulWidget{
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new BoduState();
}
}
class BoduState extends State<BodyWidget>{
var imageSrc;
/*相册*/
_openGallery() async {
// var list =
// await MultiImagePicker.pickImages(maxImages: 9, enableCamera: true);
// print("object $list");
var image = await ImagePicker.pickImage(source: ImageSource.gallery);
setState(() {
imageSrc = image;
});
print("image $image");
}
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.all(15),
child: Column(
children: <Widget>[
this.imageSrc == null ? Center(
child: Text("请选择图片或拍照"),
) : Image.file(this.imageSrc),
RaisedButton(
onPressed: _openGallery,
child: Text("选择照片"),
)
],
),
);
}
}