flutter 使用image_picker上传图片
标签: flutter开发
第一步:封装,可以单独放在一个文件里 可以直接复制
//选择图片函数
/*拍照*/
HspTakePhoto() async {
var image = await ImagePicker.pickImage(source: ImageSource.camera,maxWidth: 640,maxHeight: 480);//限制拍照图片的大小
return image;
}
/*相册*/
HspOpenGallery() async {
var image = await ImagePicker.pickImage(source: ImageSource.gallery);
return image;
}
/*选择图片底部弹框*/
showModalBottomSheet(context: context, builder: (BuildContext context){
return HspPickerImagePanel();
});
*/
class HspPickerImagePanel extends StatefulWidget {
Function hspOnchange;
HspPickerImagePanel({
Key key,
this.hspOnchange
});
@override
_HspPickerImagePanelState createState() => _HspPickerImagePanelState();
}
class _HspPickerImagePanelState extends State<HspPickerImagePanel> {
@override
Widget build(BuildContext context) {
return Container(
width: HspSize.setRpx(750),
height: HspSize.setRpx(300),
color: Colors.white,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
InkWell(
child: Text("相册"),
onTap: ()async{
var _url= await HspOpenGallery();
await widget.hspOnchange(_url);
},
),
InkWell(
child: Text("拍照"),
onTap: ()async{
var _url= await HspTakePhoto();
await widget.hspOnchange(_url);
},
),
],
),
);
}
}
第二步:打开底部弹框

调用showModalBottomSheet打开底部弹框,return第一步的HspPickerImagePanel(),val值就是返回的本地图片的地址,然后可以处理使用dio上传,
具体可以参考这篇文章https://blog.csdn.net/codekxx/article/details/101770516
注意 上传图片的大小可能汇报dio error 413错误,原因是图片大小超过服务器的设置了,使用pickImage的maxWidth和maxHeigth可以限制图片大小
智能推荐
Flutter 图片 Image 容器组件详解
Flutter 图片 Image 容器组件 Flutter 基础组件 Image 图片容器组件详情使用介绍 Flutter Image 组件介绍 引入图片的几种方式: Image.asset: 加载资源图片,就是加载项目资源目录中的图片,加入图片后会增大打包的包体体积,用的是相对路径。 Image.network: 网络资源图片,意思就是你需要加入一段http://xxxx.xxx的这样的网络路径...
Flutter组件学习(4)图片Image
介绍 关于Flutter图片的加载有多种形式 方法 释义 Image() 从ImageProvider中获取图片,从本质上看,下面的几个方法都是他的具体实现。 Image.asset(String name) 从AssetBundler中获取图片 Image.network(String src) 显示网络图片 Image.file(File file) 从File中获取图片 Ima...
Flutter 常用Widget-图片Image
Flutter中,加载并显示图片使用的是Image组件。我们先来看下这个构造函数: Image的构造参数有一下几种分别是: Image:从Provider获取图像 Image.asset:加载资源图片 Image.file:加载本地图片文件 Image.network:记载网络图片 Image.memory:加载Uint8List资源图片 我们接下来看一下如何使用 我们加载了一张网络图片。其他的使...
Flutter Widgets: Image
介绍 Image, 图片显示Widget, 和Android ImageView相似,但是从实际使用的方法上看,与常用的图片加载库,如Picasso,Glide等相似,支持本地图片,资源图片,网络图片等加载方式。 类结构 构造方法 方式 解释 Image() 通用方法,使用ImageProvider实现,如下方法本质上也是使用的这个方法 Image.asset 加载资源图片 Image.file ...
Flutter学习之image
这里的image组件照例是放在Container组件当中,在Container中放一个child,new一个Image,Image有四个方法,assert(),memory(),file(),network(最常用),就是存储在网络上的图片。Image里有几个重要的属性 fit: BoxFit.fitHeight() Y轴填充 其他几个方法字面意思 repeat: ImageRepeat.repe...
猜你喜欢
冒泡排序,及改进方式,性能优化400%>>>附图解加源码
首先源码附上,源码中带有注释,看不懂没关系,源码后面附带图解,最后附上代码效率提升图 源码如下: 方案一:其实实现很简单,两层循环,每次内层迭代出最大的一个值,将其放入数组最后一个位置,外层循环的末端便往前移一位。其原理如下图 方案一代码块: 方案二:优化改进 仔细观察上面的图,我们不难发现当迭代到图下这样的情况时,其实已经全排序好了,但是我们还是需要对它进行1,2,3,4,5,6的迭代,这些情况...
css3常用选择器
先介绍一下基本选择器,如下几种 *:通配符。选择页面的所有元素 E:元素选择器。对页面的一些元素进行选择,如p,div,li等 .class:类选择器 #id:id选择器。一个Id在一个页面中只能选择,这是和类选择器的区别 E F:后代选择器。如ul li。选中ul下的li E>F:子元素选择器。如下,可以用 h1 > strong {color:red;}使h1的子元素strong变...
python is not set from command line or npm configuration
问题 猜测原因 python版本冲突 解决方案 去官网找到最新版本python 点击下载,注意记住你下载的目录,下载好以后,打开这个目录下的文件夹,Python310, 整个文件夹复制一下 在项目里运行npm config list --json 找到python的路径 我的是 C:\\Python27\\python.exe 说明项目里用的还是py...
Java8 Stream流操作
前言 我们常常需要将一个容器转化成另一个容器,或是对这个容器中的数据进行批量处理,这时使用Stream流可以大大减少我们的工作量。 1 Stream概述 Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利。 那么什么是Stream? Stream将要处理的元素集合看作一种流,在流的过程中,借助St...
带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑
在Windows下进行C++的开发,不可避免的要与Windows的底层库进行交互,然而VS下的一项设置MT、MTd、MD和MDd却经常让人搞迷糊,相信不少人都被他坑过,特别是你工程使用了很多第三库的时候,及容易出现各种链接问题。看一下下面这个错误提示: LIBCMT.lib(_file.obj) : error LNK2005: ___initstdio already defined...
