基础组件库
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

80 行
2.9 KiB

  1. import 'dart:typed_data';
  2. import 'dart:ui' as ui;
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter/rendering.dart';
  5. import 'package:zhiying_base_widget/template/goods_share_template/goods_share_template.dart';
  6. import 'package:zhiying_comm/zhiying_comm.dart';
  7. import 'package:save_image/save_image.dart';
  8. class FavoritePage extends StatefulWidget {
  9. @override
  10. _FavoritePageState createState() => _FavoritePageState();
  11. }
  12. class _FavoritePageState extends State<FavoritePage> {
  13. GlobalKey globalKey = GlobalKey();
  14. @override
  15. Widget build(BuildContext context) {
  16. return Scaffold(
  17. appBar: AppBar(
  18. title: Text('收藏夹'),
  19. ),
  20. body: Column(
  21. children: <Widget>[
  22. Container(
  23. width: 100,
  24. height: 200,
  25. child: Transform.scale(scale: 0.2, child:
  26. RepaintBoundary(
  27. key: globalKey,
  28. child: GoodsShareTemplate()
  29. ),),
  30. ),
  31. FlatButton(
  32. child: Icon(Icons.add),
  33. onPressed: () async {
  34. try {
  35. BuildContext buildContext = globalKey.currentContext;
  36. if (null != buildContext) {
  37. RenderRepaintBoundary boundary =
  38. buildContext.findRenderObject();
  39. var image = await boundary.toImage();
  40. ByteData byteData =
  41. await image.toByteData(format: ui.ImageByteFormat.png);
  42. // final result = await ImageGallerySaver.saveImage(
  43. // byteData.buffer.asUint8List());
  44. // var response = await Dio().get(
  45. // "https://ss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/image/h%3D300/sign=a62e824376d98d1069d40a31113eb807/838ba61ea8d3fd1fc9c7b6853a4e251f94ca5f46.jpg",
  46. // options: Options(responseType: ResponseType.bytes));
  47. // final _imageSaver = ImageSaver();
  48. // final success = await _imageSaver.saveImages(
  49. // imageBytes: byteData.buffer.asUint8List()
  50. // );
  51. // final success = await ImageGallerySaver.saveImage(
  52. // byteData.buffer.asUint8List(),
  53. // quality: 80,
  54. // name: "hello");
  55. // bool success = await ImageSave.saveImageToSandbox(
  56. // byteData.buffer.asUint8List(), "demo.png");
  57. // print('${success}');
  58. // print(result);
  59. bool isSaveSuccess =
  60. await SaveImage.save(
  61. imageBytes: byteData.buffer.asUint8List());
  62. print(isSaveSuccess ? "save success" : 'save fail');
  63. }
  64. } catch (err) {
  65. Logger.error(err);
  66. }
  67. },
  68. )
  69. ],
  70. ),
  71. );
  72. }
  73. }