Skip to content

Commit 6b31805

Browse files
committed
Merge branch 'master' into develop
2 parents 7e35f4e + ce9d426 commit 6b31805

File tree

4 files changed

+85
-8
lines changed

4 files changed

+85
-8
lines changed

README.md

+78-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,78 @@
1-
# TakePhoto
2-
拍照并裁切,从相册中选择照片并裁切
1+
## [TakePhoto](https://github.com/crazycodeboy/TakePhoto) 简介
2+
- 支持以拍照的方式获取照片
3+
- 支持从相册选择照片
4+
- 支持对照片进行裁切
5+
- 支持对照片进行压缩
6+
- 支持对裁切及压缩参数自定义
7+
- 支持因拍照Activity被回收后的自动恢复
8+
9+
GitHub地址: [https://github.com/crazycodeboy/TakePhoto](https://github.com/crazycodeboy/TakePhoto)
10+
##如何使用
11+
###使用TakePhoto有以下两种方式:
12+
**方式一:通过继承的方式**
13+
1. 继承TakePhotoActivity、TakePhotoFragmentActivity、TakePhotoFragment三者之一。
14+
2. 通过`getTakePhoto()`获取TakePhoto实例进行相关操作。
15+
3. 重写以下方法获取结果
16+
```java
17+
void takeSuccess(String imagePath);
18+
void takeFail(String msg);
19+
void takeCancel();
20+
```
21+
此方式使用简单,满足的大部分的使用需求,具体使用详见simple。如果通过继承的方式无法满足实际项目的使用,可以通过下面介绍的方式。
22+
23+
**方式二:通过组装的方式**
24+
1. 获取TakePhoto实例`TakePhoto takePhoto=new TakePhotoImpl(getActivity(),this);`
25+
2.`onCreate`,`onActivityResult`,`onSaveInstanceState`方法中调用TakePhoto对用的方法。
26+
3. 调用TakePhoto实例进行相关操作。
27+
4.`TakeResultListener`相关方法中获取结果。
28+
###关于压缩照片
29+
你可以选择是否对照片进行压缩处理。
30+
```java
31+
/**
32+
* 启用照片压缩
33+
* @param config 压缩照片配置
34+
* @param showCompressDialog 压缩时是否显示进度对话框
35+
* @return
36+
*/
37+
TakePhoto onEnableCompress(CompressConfig config,boolean showCompressDialog);
38+
```
39+
eg:
40+
`getTakePhoto().onEnableCompress(new CompressConfig.Builder().setMaxSize(50*1024).setMaxPixel(800).create(),true).onPicSelectCrop(imageUri);`
41+
如果你启用了照片压缩,TakePhoto会使用`CompressImage`对照片进行压缩处理,CompressImage目前支持对照片的尺寸以及照片的质量进行压缩。默认情况下,CompressImage开启了尺寸与质量双重压缩,
42+
你可以通过CompressConfig.Builder对照片压缩后的尺寸以及质量进行相关设置。如果你想改变压缩的方式可以通过CompressConfig.Builder进行相关设置。
43+
##关于兼容性问题
44+
TakePhoto是基于Android官方标准API编写的,适配了目前市场上主流的Rom。如果你在使用过程中发现了适配问题,可以提交Issues。
45+
1. 为适配部分手机拍照时会回收Activity,TakePhoto在`onSaveInstanceState``onCreate`做了相应的恢复处理。
46+
2. 为适配部分手机拍照或从相册选择照片时屏幕方向会发生转变,从而导致拍照失败的问题,可以在AndroidManifest.xml中对使用了TakePhoto的Activity添加android:configChanges="orientation|keyboardHidden|screenSize"配置。
47+
eg:
48+
```
49+
<activity
50+
android:name=".MainActivity"
51+
android:screenOrientation="portrait"
52+
android:configChanges="orientation|keyboardHidden|screenSize"
53+
android:label="@string/app_name" >
54+
<intent-filter>
55+
<action android:name="android.intent.action.MAIN" />
56+
<category android:name="android.intent.category.LAUNCHER" />
57+
</intent-filter>
58+
</activity>
59+
```
60+
61+
##在项目中使用
62+
为方便大家使用,现已将TakePhoto发布到JCenter(如果你对如何将项目发布到JCenter感兴趣可以参考:《[教你轻松将Android library 发布到JCenter](http://blog.csdn.net/fengyuzhengfan/article/details/51407009))》
63+
Gradle:
64+
```groovy
65+
compile 'com.jph.takephoto:takephoto_library:1.0.1'
66+
```
67+
68+
Maven:
69+
```groovy
70+
<dependency>
71+
<groupId>com.jph.takephoto</groupId>
72+
<artifactId>takephoto_library</artifactId>
73+
<version>1.0.1</version>
74+
<type>pom</type>
75+
</dependency>
76+
```
77+
##最后
78+
如果你对[TakePhoto](https://github.com/crazycodeboy/TakePhoto)有更好的建议或想改造它,欢迎大家Fork and Pull requests。

gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#Mon Jun 06 10:04:34 CST 2016
1+
#Mon Jun 06 19:00:47 CST 2016
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME

simple/src/main/AndroidManifest.xml

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
android:label="@string/app_name" >
1414
<intent-filter>
1515
<action android:name="android.intent.action.MAIN" />
16-
1716
<category android:name="android.intent.category.LAUNCHER" />
1817
</intent-filter>
1918
</activity>

takephoto_library/src/main/java/com/jph/takephoto/app/TakePhoto.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717
public interface TakePhoto {
1818
/**
19-
* 处理拍照或裁剪结果
19+
* 处理拍照或从相册选择的照片或裁剪的结果
2020
*
2121
* @param requestCode
2222
* @param resultCode
@@ -30,7 +30,7 @@ public interface TakePhoto {
3030
void onPicSelectOriginal();
3131

3232
/**
33-
* 从相册选择照片进行裁剪
33+
* 从相册选择照片进行裁剪(以默认大小)
3434
*
3535
* @param outPutUri 图片保存的路径
3636
*/
@@ -52,7 +52,7 @@ public interface TakePhoto {
5252
*/
5353
void onPicTakeOriginal(Uri outPutUri);
5454
/**
55-
* 从相机拍取照片进行裁剪
55+
* 从相机拍取照片进行裁剪(以默认大小)
5656
*
5757
* @param outPutUri 图片保存的路径
5858
*/
@@ -69,7 +69,9 @@ public interface TakePhoto {
6969

7070
/**
7171
* 启用照片压缩
72-
* @return 压缩照片配置类
72+
* @param config 压缩照片配置
73+
* @param showCompressDialog 压缩时是否显示进度对话框
74+
* @return
7375
*/
7476
TakePhoto onEnableCompress(CompressConfig config,boolean showCompressDialog);
7577
/**

0 commit comments

Comments
 (0)