Browse Source

fix pickCamera parameter default & update readme

lucky1213 4 years ago
parent
commit
b05dd0e3bf
4 changed files with 81 additions and 102 deletions
  1. 67
    79
      README.md
  2. 1
    1
      example/ios/Flutter/.last_build_id
  3. 7
    0
      example/lib/main.dart
  4. 6
    22
      lib/photo.dart

+ 67
- 79
README.md View File

1
 # photo
1
 # photo
2
 
2
 
3
-[![pub package](https://img.shields.io/pub/v/photo.svg)](https://pub.dartlang.org/packages/photo)
4
-[![GitHub](https://img.shields.io/github/license/CaiJingLong/flutter_photo.svg?style=flat-square)](https://github.com/CaiJingLong/flutter_photo)
5
-[![GitHub stars](https://img.shields.io/github/stars/CaiJingLong/flutter_photo.svg?style=social&label=Stars)](https://github.com/CaiJingLong/flutter_photo)
6
-
7
 image picker, multi picker
3
 image picker, multi picker
8
 
4
 
9
 support ios icloud
5
 support ios icloud
10
 
6
 
11
 support video
7
 support video
12
 
8
 
9
+support camera
10
+
13
 use flutter as ui
11
 use flutter as ui
14
 
12
 
15
 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) or fork the library to custom ui.
13
 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) or fork the library to custom ui.
16
 
14
 
17
-## Screenshot
18
-
19
-![image](https://github.com/CaiJingLong/some_asset/blob/master/image_picker1.gif)
20
-
21
 ## install
15
 ## install
22
 
16
 
23
-latest version : [![pub package](https://img.shields.io/pub/v/photo.svg)](https://pub.dartlang.org/packages/photo)
24
-
25
 ```yaml
17
 ```yaml
26
 dependencies:
18
 dependencies:
27
-  photo: $latest_version
19
+  photo: 
20
+    git: 
21
+      url: https://git.links123.net/lucky1213/mutli_image_picker.git
28
 ```
22
 ```
29
 
23
 
30
 ## Import
24
 ## Import
34
 import 'package:photo_manager/photo_manager.dart';
28
 import 'package:photo_manager/photo_manager.dart';
35
 ```
29
 ```
36
 
30
 
37
-## Usage
31
+## Usage 从相册选择
38
 
32
 
39
-### Simple use
33
+### 简单示例
40
 
34
 
41
 ```dart
35
 ```dart
42
 void pickAssets() async {
36
 void pickAssets() async {
43
-    List<AssetEntity> assetList = await PhotoPicker.pickAsset(context: context);
44
-    /// Use assetList to do something.
37
+  PickedEntity result = await PhotoPicker.pickAsset(
38
+    context: context, 
39
+    provider: locale,
40
+    type: PickType.onlyImage,
41
+  );
42
+  /// Use assetList to do something.
45
 }
43
 }
46
 ```
44
 ```
47
 
45
 
48
-### More option
46
+### 更多的参数
49
 
47
 
50
 The context is required, other params is optional.
48
 The context is required, other params is optional.
51
 
49
 
52
 ```dart
50
 ```dart
53
 void pickAsset() async {
51
 void pickAsset() async {
54
-    List<AssetEntity> imgList = await PhotoPicker.pickAsset(
55
-      context: context,
56
-      // BuildContext requied
57
-
58
-      /// The following are optional parameters.
59
-      themeColor: Colors.green,
60
-      // the title color and bottom color
61
-      padding: 1.0,
62
-      // item padding
63
-      dividerColor: Colors.grey,
64
-      // divider color
65
-      disableColor: Colors.grey.shade300,
66
-      // the check box disable color
67
-      itemRadio: 0.88,
68
-      // the content item radio
69
-      maxSelected: 8,
70
-      // max picker image count
71
-      provider: I18nProvider.chinese,
72
-      // i18n provider ,default is chinese. , you can custom I18nProvider or use ENProvider()
73
-      rowCount: 5,
74
-      // item row count
75
-      textColor: Colors.white,
76
-      // text color
77
-      thumbSize: 150,
78
-      // preview thumb size , default is 64
79
-      sortDelegate: SortDelegate.common,
80
-      // default is common ,or you make custom delegate to sort your gallery
81
-      checkBoxBuilderDelegate: DefaultCheckBoxBuilderDelegate(
82
-        activeColor: Colors.white,
83
-        unselectedColor: Colors.white,
84
-        checkColor: Colors.blue,
85
-      ), // default is DefaultCheckBoxBuilderDelegate ,or you make custom delegate to create checkbox
86
-
87
-      loadingDelegate:
88
-          this, // if you want to build custom loading widget,extends LoadingDelegate [see example/lib/main.dart]
89
-
90
-      badgeDelegate: const DefaultBadgeDelegate(), /// or custom class extends [BadgeDelegate]
91
-
92
-      pickType: type, // all/image/video
93
-
94
-      List<AssetPathEntity> photoPathList, /// when [photoPathList] is not null , [pickType] invalid .
95
-    );
52
+  PickedEntity result = await PhotoPicker.pickAsset(
53
+    // BuildContext requied
54
+    context: context,
55
+    // item row count
56
+    rowCount: 4,
57
+    // item radio
58
+    itemRadio: 1,
59
+    // max picker image count
60
+    maxSelected: 8,
61
+    // item padding
62
+    padding: 1,
63
+    // i18n provider ,default is chinese. , you can custom I18nProvider or use ENProvider()
64
+    provider: I18nProvider.chinese,
65
+    // preview thumb size , default is 128
66
+    thumbSize: 150,
67
+    // theme, 默认使用MaterialApp定义的theme
68
+    theme: PhotoTheme(),
69
+    // default is common ,or you make custom delegate to sort your gallery
70
+    sortDelegate: SortDelegate.common,
71
+    // if you want to build custom loading widget,extends LoadingDelegate [see example/lib/main.dart]
72
+    loadingDelegate: DefaultLoadingDelegate(), 
73
+    // all/image/video
74
+    pickType: type, 
75
+    // 可以理解为相册文件夹 when [photoPathList] is not null , [pickType] invalid .
76
+    List<AssetPathEntity> photoPathList, 
77
+    //  已选择的asset
78
+    List<AssetEntity> pickedAssetList 
79
+  );
80
+```
81
+
82
+## Usage 使用相机
83
+
84
+```dart
85
+void pickCamera() async {
86
+  // 参数来源自 ImagePicker.pickImage
87
+  File result = await PhotoPicker.pickCamera(
88
+    maxWidth: 100, 
89
+    maxHeight: 100,
90
+    imageQuality: 100,
91
+    preferredCameraDevice: CameraDevice.rear,
92
+  );
93
+}
94
+```
95
+
96
+
97
+### 关于`PickedEntity`
98
+
99
+```dart
100
+// 选中的assets 取消/默认 是空数组
101
+List<AssetEntity> asset
102
+
103
+// 是否是原图 默认 false
104
+bool isFullImage
96
 ```
105
 ```
97
 
106
 
98
 ### About photoPathList params
107
 ### About photoPathList params
101
 
110
 
102
 This parameter is then passed into the `pickAsset` method, where the incoming photoList is rendered instead of the data in the album.
111
 This parameter is then passed into the `pickAsset` method, where the incoming photoList is rendered instead of the data in the album.
103
 
112
 
104
-## Whole example
105
-
106
-You can see [github](https://github.com/caijinglong/flutter_photo/blob/master/example/) [main.dart](https://github.com/caijinglong/flutter_photo/blob/master/example/lib/main.dart)
107
-
108
 ## About android
113
 ## About android
109
 
114
 
110
 ### Migrate to androidX
115
 ### Migrate to androidX
149
 <string>App need your agree, can visit your album</string>
154
 <string>App need your agree, can visit your album</string>
150
 ```
155
 ```
151
 
156
 
152
-xcode like image
153
-![in xcode](https://github.com/CaiJingLong/some_asset/blob/master/flutter_photo2.png)
154
-
155
 ### Build error
157
 ### Build error
156
 
158
 
157
 if you build error like include of non-modular header inside framework module, see [#10](https://github.com/CaiJingLong/flutter_photo/issues/10) or [so](https://stackoverflow.com/questions/27776497/include-of-non-modular-header-inside-framework-module)
159
 if you build error like include of non-modular header inside framework module, see [#10](https://github.com/CaiJingLong/flutter_photo/issues/10) or [so](https://stackoverflow.com/questions/27776497/include-of-non-modular-header-inside-framework-module)
158
-
159
-## Thanks
160
-
161
-Part of the Android code comes from [debuggerx01](https://github.com/debuggerx01).
162
-
163
-## Donate
164
-
165
-If my code helps you, and you're willing to buy me a cup of coffee.
166
-
167
-you can use [paypal](https://paypal.me/caijinglong)
168
-
169
-or scan my alipay
170
-
171
-<img width="200px"  src="https://raw.githubusercontent.com/CaiJingLong/asset_for_picgo/master/20181228213953.png"/>

+ 1
- 1
example/ios/Flutter/.last_build_id View File

1
-e66d98e32fcb326d739aa957c5133ebc
1
+894f424b8531a69bd75214bc0c525b8a

+ 7
- 0
example/lib/main.dart View File

115
                 text: "all",
115
                 text: "all",
116
                 onTap: () => _pickAsset(PickType.all),
116
                 onTap: () => _pickAsset(PickType.all),
117
               ),
117
               ),
118
+              IconTextButton(
119
+                icon: Icons.camera,
120
+                text: "camera",
121
+                onTap: () {
122
+                  PhotoPicker.pickCamera();
123
+                },
124
+              ),
118
               IconTextButton(
125
               IconTextButton(
119
                 icon: CupertinoIcons.reply_all,
126
                 icon: CupertinoIcons.reply_all,
120
                 text: "Picked asset example.",
127
                 text: "Picked asset example.",

+ 6
- 22
lib/photo.dart View File

29
 export 'package:photo/src/entity/options.dart' show PickType, PickedEntity;
29
 export 'package:photo/src/entity/options.dart' show PickType, PickedEntity;
30
 export 'package:photo/src/delegate/badge_delegate.dart';
30
 export 'package:photo/src/delegate/badge_delegate.dart';
31
 export 'package:photo/src/entity/_theme.dart';
31
 export 'package:photo/src/entity/_theme.dart';
32
+export 'package:image_picker/image_picker.dart' show CameraDevice;
32
 
33
 
33
 class PhotoPicker {
34
 class PhotoPicker {
34
   static PhotoPicker _instance;
35
   static PhotoPicker _instance;
44
 
45
 
45
   /// 没有授予权限的时候,会开启一个dialog去帮助用户去应用设置页面开启权限
46
   /// 没有授予权限的时候,会开启一个dialog去帮助用户去应用设置页面开启权限
46
   /// 确定开启设置页面,取消关闭弹窗,无论选择什么,返回值都是null
47
   /// 确定开启设置页面,取消关闭弹窗,无论选择什么,返回值都是null
47
-  ///
48
-  ///
49
   /// 当用户给予权限后
48
   /// 当用户给予权限后
50
   ///
49
   ///
51
-  ///   当用户确定时,返回一个图片[AssetEntity]列表
50
+  /// 返回一个[PickedEntity] 内有[AssetEntity]以及[isFullImage]
52
   ///
51
   ///
53
-  ///   当用户取消时返回一个空数组
52
+  /// 当用户取消时[AssetEntity]返回一个空数组
54
   ///
53
   ///
55
-  ///   [photoPathList] 一旦设置 则 [pickType]参数无效
54
+  /// [photoPathList] 一旦设置 则 [pickType]参数无效
56
   ///
55
   ///
57
-  ///   [pickedAssetList] 已选择的asset
56
+  /// [pickedAssetList] 已选择的asset
58
   ///
57
   ///
59
   /// 关于参数可以查看readme文档介绍
58
   /// 关于参数可以查看readme文档介绍
60
-  ///
61
-  /// if user not grand permission, then return null and show a dialog to help user open setting.
62
-  /// sure is open setting cancel ,cancel to dismiss dialog, return null
63
-  ///
64
-  /// when user give permission.
65
-  ///
66
-  ///   when user sure , return a [AssetEntity] of [List]
67
-  ///
68
-  ///   when user cancel selected,result is empty list
69
-  ///
70
-  ///   when [photoPathList] is not null , [pickType] invalid
71
-  ///
72
-  ///   [pickedAssetList]: The results of the last selection can be passed in for easy secondary selection.
73
-  ///
74
-  /// params see readme.md
75
   static Future<PickedEntity> pickAsset({
59
   static Future<PickedEntity> pickAsset({
76
     @required BuildContext context,
60
     @required BuildContext context,
77
     int rowCount = 4,
61
     int rowCount = 4,
122
     double maxWidth,
106
     double maxWidth,
123
     double maxHeight,
107
     double maxHeight,
124
     int imageQuality,
108
     int imageQuality,
125
-    CameraDevice preferredCameraDevice,
109
+    CameraDevice preferredCameraDevice = CameraDevice.rear,
126
   }) async {
110
   }) async {
127
     return ImagePicker.pickImage(
111
     return ImagePicker.pickImage(
128
       source: ImageSource.camera,
112
       source: ImageSource.camera,