Skip to content

Commit 2964056

Browse files
committed
publish v3.0.3 fix #41 适配部分手机选择照片提示非图片问题
1 parent c30be85 commit 2964056

File tree

6 files changed

+32
-12
lines changed

6 files changed

+32
-12
lines changed

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
## [TakePhoto](https://github.com/crazycodeboy/TakePhoto) 简介
2-
`TakePhoto`是一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库,目前最新版本[3.0.2](https://github.com/crazycodeboy/TakePhoto/)
2+
`TakePhoto`是一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库,目前最新版本[3.0.3](https://github.com/crazycodeboy/TakePhoto/)
33
3.0以下版本及API说明,详见[TakePhoto2.0+](https://github.com/crazycodeboy/TakePhoto/blob/master/README.2+.md)
44

55
**V3.0**
@@ -35,7 +35,7 @@ GitHub地址: [https://github.com/crazycodeboy/TakePhoto](https://github.com/c
3535
**Gradle:**
3636

3737
```groovy
38-
compile 'com.jph.takephoto:takephoto_library:3.0.2'
38+
compile 'com.jph.takephoto:takephoto_library:3.0.3'
3939
```
4040

4141
**Maven:**
@@ -44,7 +44,7 @@ GitHub地址: [https://github.com/crazycodeboy/TakePhoto](https://github.com/c
4444
<dependency>
4545
<groupId>com.jph.takephoto</groupId>
4646
<artifactId>takephoto_library</artifactId>
47-
<version>3.0.2</version>
47+
<version>3.0.3</version>
4848
<type>pom</type>
4949
</dependency>
5050
```

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
jcenter()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:2.2.0'
8+
classpath 'com.android.tools.build:gradle:2.2.1'
99
// classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
1010
// classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
1111
// NOTE: Do not place your application dependencies here; they belong

simple/src/main/java/com/jph/simple/CustomHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ private void configCompress(TakePhoto takePhoto){
112112
int maxSize= Integer.parseInt(etSize.getText().toString());
113113
int maxPixel= Integer.parseInt(etPx.getText().toString());
114114
boolean showProgressBar=rgShowProgressBar.getCheckedRadioButtonId()==R.id.rbShowYes? true:false;
115-
CompressConfig config= new CompressConfig.Builder().setMaxPixel(maxSize).setMaxPixel(maxPixel).create();
115+
CompressConfig config= new CompressConfig.Builder().setMaxSize(maxSize).setMaxPixel(maxPixel).create();
116116
takePhoto.onEnableCompress(config,showProgressBar);
117117
}
118118
private CropOptions getCropOptions(){

takephoto_library/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
defaultConfig {
88
minSdkVersion 8
99
targetSdkVersion 24
10-
versionCode 32
11-
versionName "3.0.2"
10+
versionCode 33
11+
versionName "3.0.3"
1212
}
1313
buildTypes {
1414
release {

takephoto_library/src/main/java/com/jph/takephoto/uitl/TImageFiles.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.jph.takephoto.uitl;
22

3+
import android.app.Activity;
34
import android.content.ContentResolver;
45
import android.content.Context;
56
import android.graphics.Bitmap;
@@ -91,7 +92,7 @@ public static void inputStreamToFile(InputStream is, File file) throws TExceptio
9192
* @param photoUri
9293
* @return
9394
*/
94-
public static File getTempFile(Context context, Uri photoUri)throws TException {
95+
public static File getTempFile(Activity context, Uri photoUri)throws TException {
9596
String minType=getMimeType(context, photoUri);
9697
if (!checkMimeType(context,minType))throw new TException(TExceptionType.TYPE_NOT_IMAGE);
9798
File filesDir=context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
@@ -115,7 +116,7 @@ public static boolean checkMimeType(Context context,String minType) {
115116
* To find out the extension of required object in given uri
116117
* Solution by http://stackoverflow.com/a/36514823/1171484
117118
*/
118-
public static String getMimeType(Context context, Uri uri) {
119+
public static String getMimeType(Activity context, Uri uri) {
119120
String extension;
120121
//Check uri format to avoid null
121122
if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
@@ -128,6 +129,12 @@ public static String getMimeType(Context context, Uri uri) {
128129
extension = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.getPath())).toString());
129130
if (TextUtils.isEmpty(extension))extension=MimeTypeMap.getSingleton().getExtensionFromMimeType(context.getContentResolver().getType(uri));
130131
}
132+
if(TextUtils.isEmpty(extension)){
133+
extension=getMimeTypeByFileName(TUriParse.getFileWithUri(uri,context).getName());
134+
}
131135
return extension;
132136
}
137+
public static String getMimeTypeByFileName(String fileName){
138+
return fileName.substring(fileName.lastIndexOf("."),fileName.length());
139+
}
133140
}

takephoto_library/src/main/java/com/jph/takephoto/uitl/TUriParse.java

+16-3
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,21 @@ public static String getFilePathWithUri(Uri uri, Activity activity)throws TExcep
9292
Log.w(TAG,"uri is null,activity may have been recovered?");
9393
throw new TException(TExceptionType.TYPE_URI_NULL);
9494
}
95+
File picture=getFileWithUri(uri,activity);
96+
String picturePath=picture==null? null:picture.getPath();
97+
if (TextUtils.isEmpty(picturePath))throw new TException(TExceptionType.TYPE_URI_PARSE_FAIL);
98+
if (!TImageFiles.checkMimeType(activity,TImageFiles.getMimeType(activity,uri)))throw new TException(TExceptionType.TYPE_NOT_IMAGE);
99+
return picturePath;
100+
}
101+
/**
102+
* 通过URI获取文件
103+
* @param uri
104+
* @param activity
105+
* @return
106+
* Author JPH
107+
* Date 2016/10/25
108+
*/
109+
public static File getFileWithUri(Uri uri, Activity activity) {
95110
String picturePath = null;
96111
String scheme=uri.getScheme();
97112
if (ContentResolver.SCHEME_CONTENT.equals(scheme)){
@@ -109,9 +124,7 @@ public static String getFilePathWithUri(Uri uri, Activity activity)throws TExcep
109124
}else if (ContentResolver.SCHEME_FILE.equals(scheme)){
110125
picturePath=uri.getPath();
111126
}
112-
if (TextUtils.isEmpty(picturePath))throw new TException(TExceptionType.TYPE_URI_PARSE_FAIL);
113-
if (!TImageFiles.checkMimeType(activity,TImageFiles.getMimeType(activity,uri)))throw new TException(TExceptionType.TYPE_NOT_IMAGE);
114-
return picturePath;
127+
return TextUtils.isEmpty(picturePath)? null:new File(picturePath);
115128
}
116129
/**
117130
* 通过从文件中得到的URI获取文件的路径

0 commit comments

Comments
 (0)