Flutter图片与文件选择器使用实例

作者:半点橘色 时间:2023-07-17 09:11:12 

引言

我已经一个多星期没碰过电脑了,今日上班,打开电脑的第一件事就是想着写点什么。反正大家都还沉浸在节后的喜悦中,还没进入工作状态,与其浪费时间,不如做些更有意义的事情。

今天就跟大家简单分享一下Flutter开发过程中经常会用到的图片和文件选择器。

一、image_picker

一个适用于iOS和Android的Flutter插件,能够从图像库中选取图片、视频,还能够调用相机拍摄新的照片。

该插件由Flutter官方提供,github的Star高达16.7k,算是比较成熟且流行的插件了。

1、安装

flutter pub add image_picker

或者

/// pubspec.yaml文件添加依赖,并在执行flutter pub get命令
dependencies
 image_picker: ^0.8.6+1

2、使用

import 'package:image_picker/image_picker.dart';
/// 图片选取
Future<void> getImage() async {
   final XFile? file = await ImagePicker().pickImage(
     source: ImageSource.gallery, // 图库选择
     maxWidth: 1000.0, // 设置图片最大宽度,间接压缩了图片的体积
   );
   /// 选取图片失败file为null,要注意判断下。
   /// 获取图片路径后可以上传到服务器上
   print('${file?.path}');
}
/// 视频选取
Future<void> getImage() async {
   final XFile? file = await ImagePicker().pickVideo(
     source: ImageSource.camera, // 调用相机拍摄
   );
   print('${file?.path}');
}

在项目中,调用getImage方法就会打开图片选择器。

Flutter图片与文件选择器使用实例

Flutter图片与文件选择器使用实例

3、属性

  • source

图片来源,ImageSource.gallery图片库中选择,ImageSource.camera调用相机拍摄新图片。

  • maxWidth

图片的最大宽度,source为ImageSource.camera时有用,等于间接的压缩了图片的体积。如果不设置,以目前手机的相机性能,动不动就拍出了4、5M的照片,对于app来说,图片上传到服务端,将会很慢,建议设置此属性。

4、注意

iOS端如果出现闪退并且控制台报出:

The app's Info.plist must contain an NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.

那么,需要打开Xcode在Info.plist配置隐私提示语。

Flutter图片与文件选择器使用实例

二、flutter_document_picker

文档选择器,image_picker只能选择图片和视频,如果要选择PDF,word文档、excel表格等就没办法了。这个时候可以使用flutter_document_picker插件,直接选取手机中的文件。

1、安装

flutter pub add flutter_document_picker

或者

/// pubspec.yaml文件添加依赖,并在执行flutter pub get命令
dependencies
 flutter_document_picker: ^5.1.0

2、使用

import 'package:image_picker/image_picker.dart';
/// 图片选取
Future<void> getDocument() async {
   FlutterDocumentPickerParams? params = FlutterDocumentPickerParams(
       // 允许选取的文件拓展类型,不加此属性则默认支持所有类型
       allowedFileExtensions: ['pdf', 'xls', 'xlsx', 'jpg', 'png', 'jpeg'],
   );
   String? path = await FlutterDocumentPicker.openDocument(
     params: params,
   );
   print('$path');
}

Flutter图片与文件选择器使用实例

来源:https://juejin.cn/post/7193605274920288317

标签:Flutter,图片,文件,选择器
0
投稿

猜你喜欢

  • iOS实现微信朋友圈与摇一摇功能

    2023-06-16 13:59:48
  • 基于Android中获取资源的id和url方法总结

    2023-06-20 06:05:21
  • 关于Spring Boot内存泄露排查的记录

    2023-06-27 18:46:19
  • Android Flutter实现搜索的三种方式详解

    2023-07-10 18:00:49
  • SpringBoot自动装配原理详解

    2023-07-03 05:49:08
  • flutter实现发送验证码功能

    2023-07-05 19:03:12
  • C#中使用split分割字符串的几种方法小结

    2023-06-18 17:23:21
  • android使用flutter的ListView实现滚动列表的示例代码

    2023-06-26 09:00:13
  • 10种简单的Java性能优化

    2023-06-20 20:43:41
  • 轻松学习C#的方法

    2023-06-21 13:22:32
  • android studio2.3如何编译动态库的过程详解

    2023-07-11 03:47:48
  • Android ListView的Item点击效果的定制

    2023-06-21 11:46:01
  • Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库

    2023-06-16 10:31:35
  • 详解Android自定义控件属性TypedArray以及attrs

    2023-06-20 05:13:41
  • 复杂JSON字符串转换为Java嵌套对象的实现

    2023-07-02 05:40:26
  • flutter实现appbar下选项卡切换

    2023-06-21 13:35:24
  • Android 实现签到足迹功能

    2023-06-21 15:16:24
  • idea创建SpringBoot项目时Type选maven project和maven pom有何区别

    2023-07-04 07:20:27
  • Flutter路由传递参数及解析实现

    2023-06-22 11:48:45
  • c#处理3种json数据的实例

    2023-06-23 19:12:47
  • asp之家 软件编程 m.aspxhome.com