Flutter高仿微信-第16篇-朋友圈-发布作品(图片)
Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。
详情请查看
效果图:
实现代码:
/*** Author : wangning* Email : maoning20080809@163.com* Date : 2022/10/22 21:51* Description : 朋友圈发布*/class MomentsPublishWidget extends StatefulWidget {final type;//多张图片final List<String> imageList;//小视频地址final videoFilePath;//小视频缩略图String thumbnailFileName = "";MomentsPublishWidget({required this.type, required this.imageList , required this.videoFilePath});@overrideState<StatefulWidget> createState() => _MomentsPublishState();}class _MomentsPublishState extends State<MomentsPublishWidget> {@overridevoid initState() {super.initState();initVideo();}void initVideo() async {if(widget.type == CommonUtils.MOMENTS_TYPE_VIDEO){widget.thumbnailFileName = await FileUtils.getBaseFile("thum_${DateUtil.getNowDateMs()}.png");await VideoThumbnail.thumbnailFile(video: widget.videoFilePath, thumbnailPath: widget.thumbnailFileName);LogUtils.d("生成缩略图:${widget.thumbnailFileName}");setState(() {});}}TextEditingController? _contentController = TextEditingController(text: "");//发布作品void _publish() async {bool isNetwork = await CommonNetwork.isNetwork();if(!isNetwork) {CommonUtils.showNetworkError(context);return;}LoadingDialogUtils.showLoadingDialog(context, msg: "正在发布,请稍后...");String account = SpUtils.getAccount();String content = _contentController?.text??"";MomentsBean? momentsBean;if(widget.type == CommonUtils.MOMENTS_TYPE_PICTURE){momentsBean = await MomentsRepository.getInstance().uploadMomentImages(widget.type, account, content, widget.imageList);} @overrideWidget build(BuildContext context) {return Scaffold(appBar: WnAppBar.getAppBar(context, Text("发布作品")),body: Column(mainAxisAlignment: MainAxisAlignment.start,children: [getContentWidget(),Expanded(child: Container(margin: EdgeInsets.only(left: 12, right: 12),alignment: AlignmentDirectional.topStart,child: widget.type == CommonUtils.MOMENTS_TYPE_PICTURE?getImageGridView():getCommonThumbnail(0),),),Container(margin: EdgeInsets.only(bottom: 20),child: ElevatedButton(onPressed: (){_publish();},child: Container(padding: EdgeInsets.only(left: 12, top: 6, right: 12, bottom: 6),child: Text("发布", style: TextStyle(fontSize: 20),),)),),],));}//显示图片九宫格Widget getImageGridView(){return GridView.builder(gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3,childAspectRatio: 1,),itemCount: widget.imageList.length,itemBuilder: (context, index){return InkWell(onTap: (){},child: Container(alignment: Alignment.center,margin: EdgeInsets.only(left: 3, top: 6, right: 3),child: CommonUtils.showBaseImage(widget.imageList[index], width:AppManager.getInstance().getWidth(context)/3, height:AppManager.getInstance().getWidth(context)/3, onPressed: (data){Navigator.push(context,MaterialPageRoute(builder: (context)=>CommonImagePreview(fileName: data,)));}),),);},);}//输入框Widget getContentWidget(){return Container(margin: EdgeInsets.all(12),child: TextField(maxLines: 5,controller: _contentController,cursorColor: Colors.black,decoration: InputDecoration(//border: InputBorder.none,border: OutlineInputBorder(borderRadius: BorderRadius.all(Radius.circular(10)),),//labelText: defaultValue,hintText: "这一刻的想法...",hintStyle: TextStyle(fontSize: 16,color: Colors.grey.withOpacity(0.8),),),),);}}
Flutter高仿微信-第16篇-朋友圈-发布作品(图片)相关推荐
- Kotlin高仿微信-第26篇-朋友圈-选择图片、小视频对话框
Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...
- Flutter高仿微信-第47篇-群聊-语音
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...
- Flutter高仿微信-第31篇-单聊-表情
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...
- Flutter高仿微信-第46篇-群聊-表情
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...
- Flutter高仿微信-第32篇-单聊-语音
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...
- Flutter高仿微信-第36篇-单聊-语音通话
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 目前市 ...
- Flutter高仿微信-第48篇-群聊-图片
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...
- Flutter高仿微信-第26篇-新的朋友
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现代 ...
- Flutter高仿微信-第57篇-添加好友
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现 ...
最新文章
- Go modules基础精进,六大核心概念全解析(下)
- 极客新闻——12、错误和失败的区别是什么?
- win7下简单FTP服务器搭建
- 从简历筛选看怎么写一篇有亮点的简历
- RTC_WaitForSynchro()
- 股市永不过时的黄金铁律:零下金叉疯狂买,零上死叉立即卖
- 深度学习总结:GAN 和 conditiaoal GAN
- 连接格点(信息学奥赛一本通-T1394)
- mybatis 注解 动态SQL
- IntelliJ IDEA学习总结(1)——IntelliJ IDEA 介绍
- 图片加载失败显示默认图片占位符
- PCHunter_32X64_2022_03最新版
- zebradesginer zpl代码_斑马打印机连三菱PLC与VB.NET
- Minimum supported Gradle version is 4.6. Current version is 4.4.
- ArcGIS系列(一):DEM数字高程模型数据的生成
- 金丹期前期:1.2、python语言-python的基本元素:变量及命名规则、数据类型及转换、运算符、输入输出
- 【06】上海各个区的经纬度
- 安装内网穿透Frps
- 30米分辨率的DEM地形数据——STRM高程数据
- 热动力数据MATLAB代码分享
热门文章
- LR和GBDT模型训练
- pgdac和unidac插入效率究竟差多少?
- Cocoapod集成阿里百川电商SDK 常见问题 解决方案
- 全方位揭秘!大数据从0到1的完美落地之HDFS的体系结构
- 不再是《独立宣言》,1619项目重新定义美国历史开端
- Android App ~ Bitmap 调用 recycle() 回收内存
- 代码随想录第二十五天|261.组合总和、17.电话号码的字母组合
- java窗口的repaint_Java Swing revalidate()与repaint()
- 1.7 运维可以转行什么
- 七年,神策的不变与变