Android 4.3裁剪图库resultCode取消

Android 4.3裁剪图库resultCode取消,第1张

概述我的Galaxy Nexus现在运行在 Android 4.3上,允许我使用这个新版本测试我的应用程序.除了裁剪外,一切似乎都很好. 我有一个应用程序,使用相机拍照,然后通过图库应用程序裁剪图像. 我也可以从画廊中选择一张图片并将其裁剪掉. 从Android 4.3开始,图库应用程序发生了变化. 如果我用相机api拍照,然后要求画廊在我的onActivityResult方法中裁剪它,resultC 我的galaxy Nexus现在运行在 Android 4.3上,允许我使用这个新版本测试我的应用程序.除了裁剪外,一切似乎都很好.

我有一个应用程序,使用相机拍照,然后通过图库应用程序裁剪图像.

我也可以从画廊中选择一张图片并将其裁剪掉.
从AndroID 4.3开始,图库应用程序发生了变化.

如果我用相机API拍照,然后要求画廊在我的onActivityResult方法中裁剪它,resultCode设置为0(意味着取消),而我点击了裁剪视图中的“保存”.

但是,如果我从图库中选择一张图片并将其裁剪掉,那么resultCode参数将设置为-1.
在两种情况下,我都使用相同的方法裁剪图片.

我的手机上有quickpic(替代画廊应用程序),一切正常!

private voID performCrop(Uri picUri) {    try {        int aspectX = 750;        int aspectY = 1011;        Intent intent = new Intent("com.androID.camera.action.CROP");        intent.setDataAndType(picUri,"image/*");        intent.putExtra("crop","true");        intent.putExtra("scale","true");        intent.putExtra("aspectX",aspectX);        intent.putExtra("aspectY",aspectY);        intent.putExtra("scaleUpIfNeeded",true);        intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromfile(new file(mCurrentPhotopath)));        startActivityForResult(intent,CROP);    }    catch (ActivityNotFoundException anfe) {        String errorMessage = "Your device doesn't support the crop action!";        Toast toast = Toast.makeText(this,errorMessage,Toast.LENGTH_SHORT);        toast.show();    }}

在AndroID 4.2.2上一切正常.
谢谢您的帮助 !

解决方法 您是否考虑过使用像这样的库:

https://github.com/biokys/cropimage

我发现com.androID.camera.action.CROP有时可能会因手机而异,但并不总是可用,所以如果你想发布它,它可能会给你带来一些问题.

更新:

我用AndroID 4.3测试了上面的库,它没有问题.您只需将库添加到项目中即可.

然后,您可以以非常类似的方式编写方法:

private voID performCrop(Uri picUri) {//you have to convert picUri to string and remove the "file://" to work as a path for this libraryString path = picUri.toString().replaceAll("file://","");try {    int aspectX = 750;    int aspectY = 1011;    Intent intent = new Intent(this,CropImage.class);    //send the path to CropImage intent to get the photo you have just taken or selected from gallery    intent.putExtra(CropImage.IMAGE_PATH,path);    intent.putExtra(CropImage.SCALE,true);    intent.putExtra("aspectX",aspectX);    intent.putExtra("aspectY",aspectY);    intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromfile(new file(mCurrentPhotopath)));    startActivityForResult(intent,CROP);}catch (ActivityNotFoundException anfe) {    String errorMessage = "Your device doesn't support the crop action!";    Toast toast = Toast.makeText(this,Toast.LENGTH_SHORT);    toast.show();}

}

总结

以上是内存溢出为你收集整理的Android 4.3裁剪图库resultCode取消全部内容,希望文章能够帮你解决Android 4.3裁剪图库resultCode取消所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1122082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存