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篇-朋友圈-发布作品(图片)相关推荐

  1. Kotlin高仿微信-第26篇-朋友圈-选择图片、小视频对话框

     Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...

  2. Flutter高仿微信-第47篇-群聊-语音

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...

  3. Flutter高仿微信-第31篇-单聊-表情

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...

  4. Flutter高仿微信-第46篇-群聊-表情

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...

  5. Flutter高仿微信-第32篇-单聊-语音

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...

  6. Flutter高仿微信-第36篇-单聊-语音通话

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 目前市 ...

  7. Flutter高仿微信-第48篇-群聊-图片

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...

  8. Flutter高仿微信-第26篇-新的朋友

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现代 ...

  9. Flutter高仿微信-第57篇-添加好友

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现 ...

最新文章

  1. Go modules基础精进,六大核心概念全解析(下)
  2. 极客新闻——12、错误和失败的区别是什么?
  3. win7下简单FTP服务器搭建
  4. 从简历筛选看怎么写一篇有亮点的简历
  5. RTC_WaitForSynchro()
  6. 股市永不过时的黄金铁律:零下金叉疯狂买,零上死叉立即卖
  7. 深度学习总结:GAN 和 conditiaoal GAN
  8. 连接格点(信息学奥赛一本通-T1394)
  9. mybatis 注解 动态SQL
  10. IntelliJ IDEA学习总结(1)——IntelliJ IDEA 介绍
  11. 图片加载失败显示默认图片占位符
  12. PCHunter_32X64_2022_03最新版
  13. zebradesginer zpl代码_斑马打印机连三菱PLC与VB.NET
  14. Minimum supported Gradle version is 4.6. Current version is 4.4.
  15. ArcGIS系列(一):DEM数字高程模型数据的生成
  16. 金丹期前期:1.2、python语言-python的基本元素:变量及命名规则、数据类型及转换、运算符、输入输出
  17. 【06】上海各个区的经纬度
  18. 安装内网穿透Frps
  19. 30米分辨率的DEM地形数据——STRM高程数据
  20. 热动力数据MATLAB代码分享

热门文章

  1. LR和GBDT模型训练
  2. pgdac和unidac插入效率究竟差多少?
  3. Cocoapod集成阿里百川电商SDK 常见问题 解决方案
  4. 全方位揭秘!大数据从0到1的完美落地之HDFS的体系结构
  5. 不再是《独立宣言》,1619项目重新定义美国历史开端
  6. Android App ~ Bitmap 调用 recycle() 回收内存
  7. 代码随想录第二十五天|261.组合总和、17.电话号码的字母组合
  8. java窗口的repaint_Java Swing revalidate()与repaint()
  9. 1.7 运维可以转行什么
  10. 七年,神策的不变与变