一个适用于iOS和Android的Flutter插件,用于从图像库中获取照片,并使用相机拍摄新照片。
本头条核心宗旨
欢迎来到「技术刚刚好」作者,「技术刚刚好」是个人维护,每天至少更新一篇Flutter技术文章,实时为大家播报Flutter最新消息。如果你刚好也在关注Flutter这门技术,那就跟我一起学习进步吧,你的赞,收藏,转发是对我个人最大的支持,维护不易,欢迎关注。
技术刚刚好经历
近几年,移动端跨平台开发技术层出不穷,从Facebook家的ReactNative,到阿里家WEEX,前端技术在移动端跨平台开发中大展身手,技术刚刚好作为一名Android开发,经历了从Reactjs到Vuejs的不断学习。而在2018年,我们的主角变成了Flutter,这是Goolge开源的一个移动端跨平台解决方案,可以快速开发精美的移动App。希望跟大家一起学习,一起进步!
本文核心要点
Flutter的Image Picker插件,IOS Android 都能使用,可以从图片库中读取照片,照片的清晰度,大小都可查看,而且还支持拍照。
2019年12月10日 最近更新。获取了17个点赞。目前版本是0.6.2 + 3更新内容如下:
添加教程
第一步去pubspec.yaml文件中添加如下代码
dependencies: image_picker: ^0.6.2+3
第二步点击工具栏
flutter pub get
然后在需要的地方使用
import 'package:image_picker/image_picker.dart';
IOS添加
将以下密钥添加到您的Info.plist文件中<project root>/ios/Runner/Info.plist:
- NSPhotoLibraryUsageDescription-描述您的应用为何需要照片库权限。在视觉编辑器中,这称为“ 隐私-照片库使用说明 ”。
- NSCameraUsageDescription-说明为什么您的应用需要访问相机。在视觉编辑器中,这称为“ 隐私-相机使用说明 ”。
- NSMicrophoneUsageDescription-说明您要录制视频的原因,为什么您的应用需要使用麦克风。在可视编辑器中,这称为“ 隐私-麦克风使用说明 ”。
DEMO例子
import 'package:image_picker/image_picker.dart'; class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { File _image; Future getImage() async { var image = await ImagePicker.pickImage(source: ImageSource.camera); setState(() { _image = image; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Image Picker Example'), ), body: Center( child: _image == null ? Text('No image selected.') : Image.file(_image), ), floatingActionButton: FloatingActionButton( onPressed: getImage, tooltip: 'Pick Image', child: Icon(Icons.add_a_photo), ), ); } }
Android系统回收处理
Android系统(尽管很少)有时会在image_picker完成后杀死程序。发生这种情况时,我们丢失了从image_picker中选择的数据。retrieveLostData在这种情况下,您可以用来检索丢失的数据。例如:
Future<void> retrieveLostData() async { final LostDataResponse response = await ImagePicker.retrieveLostData(); if (response == null) { return; } if (response.file != null) { setState(() { if (response.type == RetrieveType.video) { _handleVideo(response.file); } else { _handleImage(response.file); } }); } else { _handleError(response.exception); } }
谢谢观看技术刚刚好的文章,技术刚刚好是个人维护,每天至少更新一篇Flutter技术文章,实时为大家播报Flutter最新消息。如果你刚好也在关注Flutter这门技术,那就跟我一起学习进步吧,你的赞,收藏,转发是对我个人最大的支持,维护不易,欢迎关注。
本文暂时没有评论,来添加一个吧(●'◡'●)