|
1 |
| -[中文说明](README-zh.md) |
2 |
| - |
3 | 1 | # ImageFileSelector
|
4 | 2 |
|
5 |
| -[](https://travis-ci.org/sw926/ImageFileSelector) |
6 |
| - |
7 |
| -##### Use the system software to select, compress, crop images |
8 |
| - |
9 |
| -##### support Android Api Level >= 16 |
| 3 | +轻量级的选取图片和裁切图片的库,使用系统自带的软件实现。 |
10 | 4 |
|
11 |
| -Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. |
| 5 | +支持Android版本 Api Level >= 16 |
12 | 6 |
|
13 |
| -How to use |
14 |
| ----------- |
15 |
| -Maven |
16 |
| - |
17 |
| -```xml |
18 |
| -<dependency> |
19 |
| - <groupId>com.sw926.imagefileselector</groupId> |
20 |
| - <artifactId>library</artifactId> |
21 |
| - <version>1.1.0-SNAPSHOT</version> |
22 |
| -</dependency> |
23 |
| -``` |
24 |
| -Gradle |
| 7 | +## 使用方法 |
25 | 8 |
|
26 | 9 | ```gradle
|
27 |
| -compile 'com.sw926.imagefileselector:library:1.1.0-SNAPSHOT' |
| 10 | +compile 'com.sw926.imagefileselector:library:2.0.0' |
28 | 11 | ```
|
29 | 12 |
|
30 |
| - |
31 |
| -Select Image |
32 |
| ----------- |
33 |
| -Init |
| 13 | +在 Activity 或者 Fragment Start 之前进行初始化: |
34 | 14 |
|
35 | 15 | ``` java
|
36 |
| -ImageFileSelector mImageFileSelector = new ImageFileSelector(this); |
37 |
| -mImageFileSelector.setCallback(new ImageFileSelector.Callback() { |
| 16 | +mImageFileSelector = new ImageFileSelector(this); |
| 17 | +mImageFileSelector.setOutPutImageSize(w, h); |
| 18 | +mImageFileSelector.setQuality(80); |
| 19 | +mImageFileSelector.setListener(new ImageFileResultListener() { |
38 | 20 | @Override
|
39 |
| - public void onError(@NotNull ErrorResult errorResult) { |
40 |
| - switch (errorResult) { |
41 |
| - case permissionDenied: |
42 |
| - break; |
43 |
| - case canceled: |
44 |
| - break; |
45 |
| - case error: |
46 |
| - break; |
47 |
| - } |
| 21 | + public void onSuccess(@NonNull String filePath) { |
| 22 | + loadImage(filePath); |
| 23 | + mCurrentSelectFile = new File(filePath); |
| 24 | + mBtnCrop.setVisibility(View.VISIBLE); |
48 | 25 | }
|
49 | 26 |
|
50 | 27 | @Override
|
51 |
| - public void onSuccess(@NotNull String file) { |
| 28 | + public void onCancel() { |
| 29 | + Toast.makeText(ExampleActivity.this, "Canceled", Toast.LENGTH_LONG).show(); |
52 | 30 | }
|
53 |
| -}); |
54 |
| -``` |
55 |
| -Add code to you Activity or Fragment |
56 |
| -```java |
57 |
| -@Override |
58 |
| -protected void onActivityResult(int requestCode, int resultCode, Intent data) { |
59 |
| - super.onActivityResult(requestCode, resultCode, data); |
60 |
| - mImageFileSelector.onActivityResult(this, requestCode, resultCode, data); |
61 |
| -} |
62 |
| - |
63 |
| -@Override |
64 |
| -protected void onSaveInstanceState(Bundle outState) { |
65 |
| - super.onSaveInstanceState(outState); |
66 |
| - mImageFileSelector.onSaveInstanceState(outState); |
67 |
| -} |
68 |
| - |
69 |
| -@Override |
70 |
| -protected void onRestoreInstanceState(Bundle savedInstanceState) { |
71 |
| - super.onRestoreInstanceState(savedInstanceState); |
72 |
| - mImageFileSelector.onRestoreInstanceState(savedInstanceState); |
73 |
| -} |
74 | 31 |
|
75 |
| -@Override |
76 |
| -public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { |
77 |
| - super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
78 |
| - mImageFileSelector.onRequestPermissionsResult(this, requestCode, permissions, grantResults); |
79 |
| -} |
80 |
| -``` |
81 |
| -Setting parameters |
82 |
| -```java |
83 |
| -// Set the output file size |
84 |
| -mImageFileSelector.setOutPutImageSize(800, 600); |
85 |
| -Set the picture save quality, 0 to 100 |
86 |
| -mImageFileSelector.setQuality(80); |
87 |
| -``` |
88 |
| -Start select image |
89 |
| -```java |
90 |
| -// take picture from camera |
91 |
| -mImageFileSelector.takePhoto(this, requestCode); |
92 |
| -// select image from sdcard |
93 |
| -mImageFileSelector.selectImage(this, requestCode); |
94 |
| -// Set the save path of the image,default: /sdcard/Android/data/{packagename}/cache/images/ |
95 |
| -mImageFileSelector.setOutPutPath(); |
| 32 | + @Override |
| 33 | + public void onError() { |
| 34 | + Toast.makeText(ExampleActivity.this, "Unknown Error", Toast.LENGTH_LONG).show(); |
| 35 | + } |
| 36 | +}); |
96 | 37 | ```
|
97 | 38 |
|
| 39 | +在选择图片的地方调用: |
98 | 40 |
|
99 |
| -Crop Image |
100 |
| ----------- |
101 |
| -Init |
102 |
| -```java |
103 |
| -ImageCropper mImageCropper = new ImageCropper(); |
104 |
| -mImageCropper.setCallback(new ImageCropper.ImageCropperCallback() { |
105 |
| - @Override |
106 |
| - public void onError(@NotNull ImageCropper.CropperErrorResult result) { |
107 |
| - switch (result) { |
108 |
| - case error: |
109 |
| - break; |
110 |
| - case canceled: |
111 |
| - break; |
112 |
| - case notSupport: |
113 |
| - break; |
114 |
| - } |
115 |
| - } |
116 |
| - |
117 |
| - @Override |
118 |
| - public void onSuccess(@NotNull String outputFile) { |
119 |
| - } |
120 |
| - }); |
| 41 | +``` java |
| 42 | +mImageFileSelector.takePhoto(); |
| 43 | +// 或者 |
| 44 | +mImageFileSelector.selectImage(); |
121 | 45 | ```
|
122 |
| -Add code to you Activity or Fragment |
123 |
| -```java |
124 |
| -@Override |
125 |
| -protected void onActivityResult(int requestCode, int resultCode, Intent data) { |
126 |
| - super.onActivityResult(requestCode, resultCode, data); |
127 |
| - mImageCropper.onActivityResult(requestCode, resultCode, data); |
128 |
| -} |
129 | 46 |
|
130 |
| -@Override |
131 |
| -protected void onSaveInstanceState(Bundle outState) { |
132 |
| - super.onSaveInstanceState(outState); |
133 |
| - mImageCropper.onSaveInstanceState(outState); |
134 |
| -} |
| 47 | +## 说明 |
135 | 48 |
|
136 |
| -@Override |
137 |
| -protected void onRestoreInstanceState(Bundle savedInstanceState) { |
138 |
| - super.onRestoreInstanceState(savedInstanceState); |
139 |
| - mImageCropper.onRestoreInstanceState(savedInstanceState); |
140 |
| -} |
141 |
| -``` |
142 |
| -Setting parameters |
143 |
| -```java |
144 |
| -// Sets the picture aspect ratio |
145 |
| -mImageCropper.setOutPutAspect(1, 1); |
146 |
| -// Sets the image size |
147 |
| -mImageCropper.setOutPut(800, 800); |
148 |
| -// Sets whether to scale |
149 |
| -mImageCropper.setScale(true); |
150 |
| -``` |
151 |
| -crop image |
152 |
| -```java |
153 |
| -mImageCropper.cropImage(file); |
154 |
| -``` |
155 |
| -[snap]: https://oss.sonatype.org/content/repositories/snapshots/com/sw926/imagefileselector/library/ |
| 49 | +在 appcompat 支持 ActivityResultLauncher 后,选择图片已经非常简单,这个项目只是做了简单的封装,添加了拍照和图片压缩。选择图片不需要任何权限,如果 App 的 `AndroidManifest.xml` 没有添加 `<uses-permission android:name="android.permission.CAMERA" />` |
| 50 | +,拍照也不需要申请权限。 |
0 commit comments