GithubHelp home page GithubHelp logo

crazycodeboy / takephoto Goto Github PK

View Code? Open in Web Editor NEW
7.2K 7.2K 1.5K 11.24 MB

一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库

Home Page: http://www.devio.org/tags/#TakePhoto

License: Apache License 2.0

Java 100.00%
android android-cropper camera compress-images crop-image image-cropper image-picker takephoto

takephoto's People

Contributors

bryant1410 avatar code-boy avatar crazycodeboy avatar ohbugs avatar with-me avatar yanqilong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

takephoto's Issues

English dude !

Hi Bruce Lee,
Hope you'r fine, juste a question, I'm Morrocan, so I speak Arabic, French and English, but really I can't read your repository even your library it's a good one, I hope if you can transalte it into English.

Thank's .

多选模式,多次选择问题

我设置选择模式为多选,动态设置选择数量:limitNum=maxNum-selectedNum,当limitNum=1时,会自动变为单选择模式,选择完成后,仍可以继续选择,选择模式为多选,限制张数为1.
机型LG-Nexus5

三星s4拍照崩溃

选择拍照后在点击保存的时候程序崩溃,错误信息是在OnActivityForResult中我们的takephoto对象为null

请求码的设置

通过TakePhoto自带的裁切工具裁切图片时
TUtils类中的cropWithOwnApp方法,
3.0版本中没有设置requestCode,导致在onActivityResult方法中获取的requestCode无法确定,
建议方法参数中添加requestCode参数或者设置为TConstant.RC_CROP

android 6.0裁剪后闪退

拍照或相册选择图像后进入系统裁剪,裁剪确认后闪退。
测试机器 小米4C 系统6.01

Could not find support-v4.jar

Error:A problem occurred configuring project ':takephoto_library'.

Could not find support-v4.jar (com.android.support:support-v4:24.0.0).
Searched in the following locations:
https://jcenter.bintray.com/com/android/support/support-v4/24.0.0/support-v4-24.0.0.jar

我引用的是compile 'com.jph.takephoto:takephoto_library:3.0.3'这个版本,发现找不到v4-24.0.0版本的jar。
后来只能引入takephoto_library更改了v4.jar版本,建议你重新更新下你的aar

INSTALL_FAILED_CONFLICTING_PROVIDER

安装demo后,再安装集成TakePhoto的项目,会出现INSTALL_FAILED_CONFLICTING_PROVIDER,应该是这个的问题:



但这个配置是写在框架中的,对于这种类似问题应该怎么解决,求指教

StrictMode raise android.net.Uri.checkFileUriExposed on ClipData.Item.getUri()

OS: Android 6.0

在StrictMode开启后会有如下的错误,而且照片没有保存成功:

E/StrictMode: null
java.lang.Throwable: file:// Uri exposed through ClipData.Item.getUri()
at android.net.Uri.checkFileUriExposed(Uri.java:2346)
at android.content.ClipData.prepareToLeaveProcess(ClipData.java:825)
at android.content.Intent.prepareToLeaveProcess(Intent.java:8240)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1508)
at android.app.Activity.startActivityForResult(Activity.java:3930)
at android.app.Activity.startActivityForResult(Activity.java:3890)
at com.jph.takephoto.uitl.TUtils.startActivityForResult(TUtils.java:39)
at com.jph.takephoto.uitl.TUtils.captureBySafely(TUtils.java:69)
at com.jph.takephoto.app.TakePhotoImpl.onPickFromCaptureWithCrop(TakePhotoImpl.java:249)

file:// 因为安全的原因比较新版本的Android系统被废弃了, 解决方案可以参考里的使用 content:// 来替代 file:// https://stackoverflow.com/questions/32623304/when-take-photo-get-java-lang-throwable-file-uri-exposed-through-clipdata

bug

用酷派4.1系统,使用相册裁剪和拍照裁剪都保存不了图片,其中拍照进不到裁剪界面。相册选择裁剪之后保存后,没有发现文件,界面显示不出图片。

关于provider相同无法安装的问题解决

描述:手机上已有一个app使用本库的依赖,当你app在用这个库的依赖时,由于使用了provider,会检测到INSTALL FAILED CONFLICTING PROVIDER 问题,安装失败。
解决方法:将本库下载到本地,导入作为项目依赖,修改2个地方
1、AndroidManifest中的android:authorities="xx"的值(xx为你改后的值)。
2、常量类TConstant中的public final static String FILE_PROVIDER="xx"的值(与1中的值保持一致)。
重新编译,就ok了。
望作者采纳。

as打包以后不能使用(release),debug出来的没有问题??

1.这是打开相册时的错误: Process: com.quwy.wuyou, PID: 24695
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.quwy.wuyou/com.darsh.multipleimageselect.activities.AlbumSelectActivity}: android.view.InflateException: Binary XML file line #44: Error inflating class Button
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2359)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2411)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5315)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #44: Error inflating class Button
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at android.view.LayoutInflater.inflate(LayoutInflater.java:400)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.a.ab.b(Unknown Source)
at android.support.v7.a.q.setContentView(Unknown Source)
at com.darsh.multipleimageselect.activities.AlbumSelectActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:5351)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
at com.lbe.security.service.core.client.b.x.callActivityOnCreate(Unknown Source)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2323)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2411) 
at android.app.ActivityThread.access$800(ActivityThread.java:151) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342) 
at android.os.Handler.dispatchMessage(Handler.java:110) 
at android.os.Looper.loop(Looper.java:193) 
at android.app.ActivityThread.main(ActivityThread.java:5315) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException
at android.support.v7.widget.af.setBackgroundDrawable(Unknown Source)
at android.view.View.setBackground(View.java:15663)
at android.view.View.(View.java:3906)
at android.widget.TextView.(TextView.java:642)
at android.widget.Button.(Button.java:107)
at android.support.v7.widget.af.(Unknown Source)
at android.support.v7.widget.af.(Unknown Source)
at android.support.v7.a.aq.a(Unknown Source)
at android.support.v7.a.ab.a(Unknown Source)
at android.support.v4.view.ad.onCreateView(Unknown Source)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:400) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
at android.support.v7.a.ab.b(Unknown Source) 
at android.support.v7.a.q.setContentView(Unknown Source) 
at com.darsh.multipleimageselect.activities.AlbumSelectActivity.onCreate(Unknown Source) 
at android.app.Activity.performCreate(Activity.java:5351) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) 
at com.lbe.security.service.core.client.b.x.callActivityOnCreate(Unknown Source) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2323) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2411) 
at android.app.ActivityThread.access$800(ActivityThread.java:151) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342) 
at android.os.Handler.dispatchMessage(Handler.java:110) 
at android.os.Looper.loop(Looper.java:193) 
at android.app.ActivityThread.main(ActivityThread.java:5315) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660) 
at dalvik.system.NativeStart.main(Native Method) 

2.这是打开相机时:
Process: com.quwy.wuyou, PID: 24847
java.lang.ExceptionInInitializerError
at com.a.a.d.d.a.x.(Unknown Source)
at com.a.a.d.d.a.w.(Unknown Source)
at com.a.a.f.(Unknown Source)
at com.a.a.g.a(Unknown Source)
at com.a.a.f.a(Unknown Source)
at com.a.a.i.(Unknown Source)
at com.a.a.i.(Unknown Source)
at com.a.a.e.m.a(Unknown Source)
at com.a.a.f.a(Unknown Source)
at com.quwy.wuyou.activity.ReleaseLostActivity.takeSuccess(Unknown Source)
at com.jph.takephoto.app.TakePhotoImpl.handleTakeCallBack(Unknown Source)
at com.jph.takephoto.app.TakePhotoImpl.access$000(Unknown Source)
at com.jph.takephoto.app.TakePhotoImpl$1.onCompressSuccess(Unknown Source)
at com.jph.takephoto.a.d.a(Unknown Source)
at com.jph.takephoto.a.d.a(Unknown Source)
at com.jph.takephoto.a.e.a(Unknown Source)
at com.jph.takephoto.a.h.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5315)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at java.lang.Enum$1.create(Enum.java:43)
at java.lang.Enum$1.create(Enum.java:35)
at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
at java.lang.Enum.getSharedConstants(Enum.java:209)
at java.util.EnumSet.noneOf(EnumSet.java:48)
at java.util.EnumSet.of(EnumSet.java:152)
at java.util.EnumSet.of(EnumSet.java:172)
at java.util.EnumSet.of(EnumSet.java:194)
at com.a.a.d.d.a.f.(Unknown Source)
at com.a.a.d.d.a.x.(Unknown Source) 
at com.a.a.d.d.a.w.(Unknown Source) 
at com.a.a.f.(Unknown Source) 
at com.a.a.g.a(Unknown Source) 
at com.a.a.f.a(Unknown Source) 
at com.a.a.i.(Unknown Source) 
at com.a.a.i.(Unknown Source) 
at com.a.a.e.m.a(Unknown Source) 
at com.a.a.f.a(Unknown Source) 
at com.quwy.wuyou.activity.ReleaseLostActivity.takeSuccess(Unknown Source) 
at com.jph.takephoto.app.TakePhotoImpl.handleTakeCallBack(Unknown Source) 
at com.jph.takephoto.app.TakePhotoImpl.access$000(Unknown Source) 
at com.jph.takephoto.app.TakePhotoImpl$1.onCompressSuccess(Unknown Source) 
at com.jph.takephoto.a.d.a(Unknown Source) 
at com.jph.takephoto.a.d.a(Unknown Source) 
at com.jph.takephoto.a.e.a(Unknown Source) 
at com.jph.takephoto.a.h.run(Unknown Source) 
at android.os.Handler.handleCallback(Handler.java:808) 
at android.os.Handler.dispatchMessage(Handler.java:103) 
at android.os.Looper.loop(Looper.java:193) 
at android.app.ActivityThread.main(ActivityThread.java:5315) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660) 
at dalvik.system.NativeStart.main(Native Method) 

问题:debug跑出来没有问题,相册,相机都能用,正式打包用(key)release就报上面的错误。而且正式打包用(key)release,不做混淆的话也没有问题?求指教???谢谢!!!!

在华为p7上点击activity中使用,点击从文件选择,选择图片选择之后点击确定,程序出现崩溃

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1008, result=-1, data=Intent { (has extras) }} to activity {com.jph.simple/com.jph.simple.SimpleActivity}: java.lang.reflect.UndeclaredThrowableException
at android.app.ActivityThread.deliverResults(ActivityThread.java:3822)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3865)
at android.app.ActivityThread.access$1700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5569)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:931)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:726)
Caused by: java.lang.reflect.UndeclaredThrowableException
at $Proxy3.onActivityResult(Unknown Source)
at com.jph.takephoto.app.TakePhotoActivity.onActivityResult(TakePhotoActivity.java:42)
at android.app.Activity.dispatchActivityResult(Activity.java:6303)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3818)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3865) 
at android.app.ActivityThread.access$1700(ActivityThread.java:159) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5569) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:931) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:726) 
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.jph.takephoto.permission.TakePhotoInvocationHandler.invoke(TakePhotoInvocationHandler.java:39)
at java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy3.onActivityResult(Unknown Source) 
at com.jph.takephoto.app.TakePhotoActivity.onActivityResult(TakePhotoActivity.java:42) 
at android.app.Activity.dispatchActivityResult(Activity.java:6303) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3818) 
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3865) 
at android.app.ActivityThread.access$1700(ActivityThread.java:159) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5569) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:931) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:726) 
Caused by: java.lang.IllegalArgumentException: Failed to find configured root that contains /system/media/Pre-loaded/Pictures/Picture_08_Penguins.jpg
at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:678)
at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:377)
at com.jph.takephoto.uitl.TUtils.convertImageToUri(TUtils.java:46)
at com.jph.takephoto.app.TakePhotoImpl.onActivityResult(TakePhotoImpl.java:230)
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.jph.takephoto.permission.TakePhotoInvocationHandler.invoke(TakePhotoInvocationHandler.java:39) 
at java.lang.reflect.Proxy.invoke(Proxy.java:397) 
at $Proxy3.onActivityResult(Unknown Source) 
at com.jph.takephoto.app.TakePhotoActivity.onActivityResult(TakePhotoActivity.java:42) 
at android.app.Activity.dispatchActivityResult(Activity.java:6303) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3818) 
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3865) 
at android.app.ActivityThread.access$1700(ActivityThread.java:159) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5569) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:931) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:726) 

错判一些图片为非图片

出现在魅族手机(型号为M463C),现在只发现所有的截屏图片都被认为不是图片,格式是jpg的

报空指针异常

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1007, result=-1, data=Intent { dat=file:///storage/emulated/0/DCIM/Camera/IMG_20160814_162224_HDR.jpg typ=image/jpeg }} to activity
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.Fragment.startActivityForResult(android.content.Intent, int)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:3706)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3749)
at android.app.ActivityThread.access$1400(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5438)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.Fragment.startActivityForResult(android.content.Intent, int)' on a null object reference
at com.soundcloud.android.crop.Crop.start(Crop.java:151)
at com.soundcloud.android.crop.Crop.start(Crop.java:128)
at com.jph.takephoto.uitl.TUtils.cropWithOwnApp(TUtils.java:102)
at com.jph.takephoto.app.TakePhotoImpl.onCrop(TakePhotoImpl.java:195)
at com.jph.takephoto.app.TakePhotoImpl.onActivityResult(TakePhotoImpl.java:87)
at com.jph.takephoto.app.TakePhotoFragmentActivity.onActivityResult(TakePhotoFragmentActivity.java:27)
at android.app.Activity.dispatchActivityResult(Activity.java:6508)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3702)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3749) 
at android.app.ActivityThread.access$1400(ActivityThread.java:153) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5438) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 

为什么我跟你demo的一样做的,但是走不到takeSuccess方法啊?

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
//申请WRITE_EXTERNAL_STORAGE权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
1);
}
File file=new File(Environment.getExternalStorageDirectory(), "/temp/"+System.currentTimeMillis() + ".jpg");
if (!file.getParentFile().exists())file.getParentFile().mkdirs();
Uri imageUri = Uri.fromFile(file);
CompressConfig compressConfig=new CompressConfig.Builder().setMaxSize(50*1024).setMaxPixel(800).create();
//CropOptions cropOptions=new CropOptions.Builder().setAspectX(1).setAspectY(1).setWithOwnCrop(withOwnCrop).create();
getTakePhoto().onEnableCompress(compressConfig,true).onPickFromCapture(imageUri);

华为荣耀6在选中图片,点击确定后出现bug

10-15 14:02:08.585 16672-16672/com.jph.simple E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.jph.simple, PID: 16672
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=66544, result=-1, data=Intent { (has extras) }} to activity {com.jph.simple/com.jph.simple.SimpleFragmentActivity}: java.lang.reflect.UndeclaredThrowableException
at android.app.ActivityThread.deliverResults(ActivityThread.java:3838)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3881)
at android.app.ActivityThread.access$1700(ActivityThread.java:163)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5595)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.reflect.UndeclaredThrowableException
at $Proxy3.onActivityResult(Unknown Source)
at com.jph.takephoto.app.TakePhotoFragment.onActivityResult(TakePhotoFragment.java:42)
at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:165)
at android.app.Activity.dispatchActivityResult(Activity.java:6325)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3834)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3881) 
at android.app.ActivityThread.access$1700(ActivityThread.java:163) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5595) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.jph.takephoto.permission.TakePhotoInvocationHandler.invoke(TakePhotoInvocationHandler.java:39)
at java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy3.onActivityResult(Unknown Source) 
at com.jph.takephoto.app.TakePhotoFragment.onActivityResult(TakePhotoFragment.java:42) 
at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:165) 
at android.app.Activity.dispatchActivityResult(Activity.java:6325) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3834) 
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3881) 
at android.app.ActivityThread.access$1700(ActivityThread.java:163) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5595) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
Caused by: java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/sdcard1/图片/56efdbe1193131e57f61511bda14b686.jpg
at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:679)
at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:378)
at com.jph.takephoto.uitl.TUtils.convertImageToUri(TUtils.java:46)
at com.jph.takephoto.app.TakePhotoImpl.onActivityResult(TakePhotoImpl.java:230)
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.jph.takephoto.permission.TakePhotoInvocationHandler.invoke(TakePhotoInvocationHandler.java:39) 
at java.lang.reflect.Proxy.invoke(Proxy.java:397) 
at $Proxy3.onActivityResult(Unknown Source) 
at com.jph.takephoto.app.TakePhotoFragment.onActivityResult(TakePhotoFragment.java:42) 
at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:165) 
at android.app.Activity.dispatchActivityResult(Activity.java:6325) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3834) 
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3881) 
at android.app.ActivityThread.access$1700(ActivityThread.java:163) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5595) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

图片体积问题

50KB或者其他100+的图片,选取剪裁后,都变成200KB+(小米4),一些手机是50KB+,一些是100+。怎么破

魅族 flyme bug

flyme中选择单张图片,如果选择截图,提示选择不是图片。
takeFail:选择的文件不是图片 图片压缩失败:/storage/emulated/0/temp/1476416342055.jpg is compress failures picturePath:/storage/emulated/0/temp/1476416342055.jpg

纠正照片的旋转角度引起崩溃

/**
 * 纠正照片的旋转角度
 * @param path
 */
public void correctImage(Uri path){

    String imagePath=TUriParse.parseOwnUri(path);
    int degree;
    if((degree=getBitmapDegree(imagePath))!=0){
        Bitmap bitmap= BitmapFactory.decodeFile(imagePath);
        if(bitmap==null)return;
        Bitmap resultBitmap=rotateBitmapByDegree(bitmap,degree);
        if(resultBitmap==null)return;
        try {
            resultBitmap.compress(Bitmap.CompressFormat.JPEG,100,new FileOutputStream(new File(imagePath)));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

这段代码会在三星中使得内存陡增,建议加个纠正开关或者根据设置的compress先压缩再旋转

demo的这一句是不是写错了

在TakePhoto/simple/src/main/java/com/jph/simple/CustomHelper.java里的configCompress方法中的这一句CompressConfig config= new CompressConfig.Builder().setMaxPixel(maxSize).setMaxPixel(maxPixel).create();
好像,Builder()后应该改为setMaxSize(maxSize)

图片压缩原理是什么

你这里的图片压缩是根据什么来压缩的呢?压缩的情况如何?比如,质量,大小。。。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.