Reason Pun

U

1 +import 'dart:io';
2 +
1 import 'package:flutter/material.dart'; 3 import 'package:flutter/material.dart';
2 import 'package:Parlando/extension/int_extension.dart'; 4 import 'package:Parlando/extension/int_extension.dart';
3 import 'package:Parlando/widgets/my_app_bar.dart'; 5 import 'package:Parlando/widgets/my_app_bar.dart';
4 import 'package:flutter_gen/gen_l10n/Parlando_localizations.dart'; 6 import 'package:flutter_gen/gen_l10n/Parlando_localizations.dart';
7 +import 'package:image_picker/image_picker.dart';
5 8
6 class AccountEditPage extends StatefulWidget { 9 class AccountEditPage extends StatefulWidget {
7 const AccountEditPage({Key? key}) : super(key: key); 10 const AccountEditPage({Key? key}) : super(key: key);
...@@ -66,13 +69,60 @@ class MapScreenState extends State<AccountEditPage> ...@@ -66,13 +69,60 @@ class MapScreenState extends State<AccountEditPage>
66 child: Row( 69 child: Row(
67 mainAxisAlignment: MainAxisAlignment.center, 70 mainAxisAlignment: MainAxisAlignment.center,
68 children: <Widget>[ 71 children: <Widget>[
69 - CircleAvatar( 72 + InkWell(
73 + child: CircleAvatar(
70 backgroundColor: Colors.red, 74 backgroundColor: Colors.red,
71 radius: 25.px, 75 radius: 25.px,
72 child: const Icon( 76 child: const Icon(
73 Icons.camera_alt, 77 Icons.camera_alt,
74 color: Colors.white, 78 color: Colors.white,
75 ), 79 ),
80 + ),
81 + onTap: () {
82 + showModalBottomSheet(
83 + context: context,
84 + builder: (context) {
85 + return Column(
86 + mainAxisSize: MainAxisSize.min,
87 + children: <Widget>[
88 + ListTile(
89 + title: const Center(
90 + child: Text(
91 + '拍照',
92 + style: TextStyle(
93 + fontSize: 18,
94 + ),
95 + ),
96 + ),
97 + onTap: () {
98 + _getImage();
99 + },
100 + ),
101 + ListTile(
102 + title: const Center(
103 + child: Text(
104 + '相册',
105 + style: TextStyle(
106 + fontSize: 18,
107 + ),
108 + ),
109 + ),
110 + onTap: () {
111 + onImageButtonPressed(
112 + ImageSource.gallery, context: context,
113 + capturedImageFile: (s) {
114 + print("file path ${s}");
115 + setState(() {
116 + // _imageFile = s;
117 + });
118 + },
119 + );
120 + },
121 + ),
122 + ],
123 + );
124 + });
125 + },
76 ) 126 )
77 ], 127 ],
78 )), 128 )),
...@@ -412,3 +462,33 @@ class MapScreenState extends State<AccountEditPage> ...@@ -412,3 +462,33 @@ class MapScreenState extends State<AccountEditPage>
412 ); 462 );
413 } 463 }
414 } 464 }
465 +
466 +onImageButtonPressed(ImageSource source,
467 + {required BuildContext context, capturedImageFile}) async {
468 + final ImagePicker _picker = ImagePicker();
469 + File val;
470 +
471 + final pickedFile = await _picker.pickImage(
472 + source: source,
473 + );
474 +
475 + val = await ImageCropper.cropImage(
476 + sourcePath: pickedFile.path,
477 + aspectRatio: CropAspectRatio(ratioX: 1, ratioY: 1),
478 + compressQuality: 100,
479 + maxHeight: 700,
480 + maxWidth: 700,
481 + compressFormat: ImageCompressFormat.jpg,
482 + androidUiSettings: AndroidUiSettings(
483 + toolbarColor: Colors.white,
484 + toolbarTitle: "genie cropper",
485 + ),
486 + );
487 + print("cropper ${val.runtimeType}");
488 + capturedImageFile(val.path);
489 +
490 +}
491 +
492 +typedef capturedImageFile = String Function(String);
493 +typedef void OnPickImageCallback(
494 + double maxWidth, double maxHeight, int quality);
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -52,7 +52,8 @@ dependencies: ...@@ -52,7 +52,8 @@ dependencies:
52 # 启动URL的插件(支持Web) https://github.com/flutter/plugins/tree/master/packages/url_launcher 52 # 启动URL的插件(支持Web) https://github.com/flutter/plugins/tree/master/packages/url_launcher
53 url_launcher: ^6.0.18 53 url_launcher: ^6.0.18
54 # 图片选择插件(支持Web) https://github.com/flutter/plugins/tree/master/packages/image_picker 54 # 图片选择插件(支持Web) https://github.com/flutter/plugins/tree/master/packages/image_picker
55 - image_picker: ^0.8.4+5 55 + image_picker: ^0.8.5
56 + image_cropper: ^2.0.0
56 # 侧滑删除 https://github.com/letsar/flutter_slidable 57 # 侧滑删除 https://github.com/letsar/flutter_slidable
57 flutter_slidable: ^1.1.0 58 flutter_slidable: ^1.1.0
58 # WebView插件 https://github.com/flutter/plugins/tree/master/packages/webview_flutter 59 # WebView插件 https://github.com/flutter/plugins/tree/master/packages/webview_flutter
......