cjl_macbook 6 anos atrás
pai
commit
bd8ef4b31a

+ 28
- 15
README.md Ver arquivo

@@ -1,35 +1,48 @@
1 1
 # photo
2 2
 
3
-## 内测中
3
+image picker, multi picker
4
+use flutter as ui
5
+
6
+if you want to build custom ui, you just need api to make custom ui. to use [photo_manager](https://github.com/CaiJingLong/flutter_photo_manager)
7
+
8
+## screenshot
9
+!(image)[https://github.com/CaiJingLong/some_asset/blob/master/image_picker1.gif]
10
+
11
+## install
4 12
 
5
-install
6 13
 ```yaml
7 14
 dependencies:
8
-
9
-  photo:
10
-    git: https://github.com/CaiJingLong/flutter_photo
11
-    ref: 5affef481c63a314333b40b4f26e1dc689c15c00 # 这里的ref看情况修改也可
15
+  photo: ^0.0.1
12 16
 ```
13 17
 
14
-import
18
+## import
15 19
 ```dart
16 20
 import 'package:photo/photo.dart';
17 21
 import 'package:photo_manager/photo_manager.dart';
18 22
 ```
19 23
 
20
-调用
24
+## use
21 25
 ```dart
22 26
 void _pickImage() async{
27
+  void _pickImage() async {
23 28
     List<ImageEntity> imgList = await PhotoPicker.pickImage(
24
-      context: context,
25
-      themeColor: Colors.green,
26
-      padding: 5.0,
27
-      dividerColor: Colors.deepOrange,
28
-      disableColor: Colors.grey.shade300,
29
-      itemRadio: 0.88,
29
+      context: context, // BuildContext requied
30
+
31
+      /// The following are optional parameters.
32
+      themeColor: Colors.green, // the title color and bottom color
33
+      padding: 5.0, // item padding
34
+      dividerColor: Colors.deepOrange, // divider color 
35
+      disableColor: Colors.grey.shade300, // the check box disable color
36
+      itemRadio: 0.88, // the content item radio
37
+      maxSelected: 8, // max picker image count
38
+      provider: CNProvider(), // i18n provider ,default is chinese.
39
+      rowCount: 5,  // item row count
40
+      textColor: Colors.white, // text color
30 41
     );
31 42
 
32
-    print(imgList);
43
+    imgList.forEach((e) async {
44
+      print(e.id);
45
+    });
33 46
   }
34 47
 
35 48
 ```

+ 21
- 4
example/lib/main.dart Ver arquivo

@@ -27,8 +27,9 @@ class MyHomePage extends StatefulWidget {
27 27
 }
28 28
 
29 29
 class _MyHomePageState extends State<MyHomePage> {
30
+  String currentSelected = "";
30 31
 
31
-  void _pickImage() async{
32
+  void _pickImage() async {
32 33
     List<ImageEntity> imgList = await PhotoPicker.pickImage(
33 34
       context: context,
34 35
       themeColor: Colors.green,
@@ -36,9 +37,22 @@ class _MyHomePageState extends State<MyHomePage> {
36 37
       dividerColor: Colors.deepOrange,
37 38
       disableColor: Colors.grey.shade300,
38 39
       itemRadio: 0.88,
40
+      maxSelected: 8,
41
+      provider: CNProvider(),
42
+      rowCount: 5,
43
+      textColor: Colors.white,
39 44
     );
40 45
 
41
-    print("imgList = $imgList");
46
+    List<String> r = [];
47
+
48
+    for(var e in imgList){
49
+      var file = await e.file;
50
+      r.add(file.absolute.path);
51
+    }
52
+
53
+    currentSelected = r.join("\n\n");
54
+
55
+    setState(() {});
42 56
   }
43 57
 
44 58
   @override
@@ -47,7 +61,11 @@ class _MyHomePageState extends State<MyHomePage> {
47 61
       appBar: new AppBar(
48 62
         title: new Text(widget.title),
49 63
       ),
50
-      body: Container(),
64
+      body: Container(
65
+        child: Center(
66
+          child: Text('$currentSelected'),
67
+        ),
68
+      ),
51 69
       floatingActionButton: new FloatingActionButton(
52 70
         onPressed: _pickImage,
53 71
         tooltip: 'pickImage',
@@ -55,5 +73,4 @@ class _MyHomePageState extends State<MyHomePage> {
55 73
       ),
56 74
     );
57 75
   }
58
-
59 76
 }

+ 4
- 2
lib/photo.dart Ver arquivo

@@ -9,6 +9,8 @@ import 'package:photo/src/ui/dialog/not_permission_dialog.dart';
9 9
 import 'package:photo/src/ui/photo_app.dart';
10 10
 import 'package:photo_manager/photo_manager.dart';
11 11
 
12
+export 'package:photo/src/provider/i18n_provider.dart' show I18NCustomProvider,I18nProvider,CNProvider,ENProvider;
13
+
12 14
 class PhotoPicker {
13 15
   static PhotoPicker _instance;
14 16
 
@@ -78,7 +80,7 @@ class PhotoPicker {
78 80
     Options options,
79 81
     I18nProvider provider,
80 82
   ) async {
81
-    var requestPermission = await ImageScanner.requestPermission();
83
+    var requestPermission = await PhotoManager.requestPermission();
82 84
     if (requestPermission != true) {
83 85
       var result = await showDialog(
84 86
         context: context,
@@ -87,7 +89,7 @@ class PhotoPicker {
87 89
             ),
88 90
       );
89 91
       if (result == true) {
90
-        ImageScanner.openSetting();
92
+        PhotoManager.openSetting();
91 93
       }
92 94
       return null;
93 95
     }

+ 6
- 6
lib/src/provider/i18n_provider.dart Ver arquivo

@@ -18,13 +18,13 @@ abstract class I18nProvider {
18 18
 
19 19
   I18NPermissionProvider getNotPermissionText(Options options);
20 20
 
21
-  static const I18nProvider chinese = _CNProvider();
21
+  static const I18nProvider chinese = CNProvider();
22 22
 
23
-  static const I18nProvider english = _ENProvider();
23
+  static const I18nProvider english = ENProvider();
24 24
 }
25 25
 
26
-class _CNProvider extends I18nProvider {
27
-  const _CNProvider() : super._();
26
+class CNProvider extends I18nProvider {
27
+  const CNProvider() : super._();
28 28
 
29 29
   @override
30 30
   String getTitleText(Options options) {
@@ -63,8 +63,8 @@ class _CNProvider extends I18nProvider {
63 63
   }
64 64
 }
65 65
 
66
-class _ENProvider extends I18nProvider {
67
-  const _ENProvider() : super._();
66
+class ENProvider extends I18nProvider {
67
+  const ENProvider() : super._();
68 68
 
69 69
   @override
70 70
   String getTitleText(Options options) {

+ 1
- 1
lib/src/ui/page/photo_main_page.dart Ver arquivo

@@ -148,7 +148,7 @@ class _PhotoMainPageState extends State<PhotoMainPage>
148 148
   }
149 149
 
150 150
   void _refreshList() async {
151
-    var pathList = await ImageScanner.getImagePathList();
151
+    var pathList = await PhotoManager.getImagePathList();
152 152
     galleryPathList.clear();
153 153
     galleryPathList.addAll(pathList);
154 154
 

+ 3
- 5
pubspec.lock Ver arquivo

@@ -210,11 +210,9 @@ packages:
210 210
   photo_manager:
211 211
     dependency: "direct main"
212 212
     description:
213
-      path: "."
214
-      ref: c87060911e1312113a9df43bec084e0c031ac58a
215
-      resolved-ref: c87060911e1312113a9df43bec084e0c031ac58a
216
-      url: "https://github.com/CaiJingLong/flutter_photo_manager.git"
217
-    source: git
213
+      name: photo_manager
214
+      url: "https://pub.flutter-io.cn"
215
+    source: hosted
218 216
     version: "0.0.1"
219 217
   plugin:
220 218
     dependency: transitive

+ 7
- 5
pubspec.yaml Ver arquivo

@@ -1,5 +1,5 @@
1 1
 name: photo
2
-description: image picker, multi selector, if you want to build custom ui,you just use flutter_photo_manager.
2
+description: image picker, multi picker,use flutter as ui, if you want to build custom ui,you just use photo_manager.
3 3
 version: 0.0.1
4 4
 author: caijinglong
5 5
 homepage: https://github.com/CaiJingLong/flutter_photo
@@ -10,10 +10,12 @@ environment:
10 10
 dependencies:
11 11
   flutter:
12 12
     sdk: flutter
13
-  photo_manager:
14
-    git:
15
-      url: https://github.com/CaiJingLong/flutter_photo_manager.git
16
-      ref: c87060911e1312113a9df43bec084e0c031ac58a
13
+
14
+  photo_manager: ^0.0.1
15
+#  photo_manager:
16
+#    git:
17
+#      url: https://github.com/CaiJingLong/flutter_photo_manager.git
18
+#      ref: c87060911e1312113a9df43bec084e0c031ac58a
17 19
 #  photo_manager:
18 20
 #    path: /Users/caijinglong/code/flutter/plugin/flutter_photo_manager/
19 21