我正在尝试从媒体库中裁剪图像.我可以访问图像,启动默认裁剪工具甚至保存裁剪的图像结果.但是,如果裁剪成功,我正在使用的意图将不会返回任何结果.
– 主要方法 –
// Crop photo intent.Intent intent = new Intent("com.androID.camera.action.CROP", null); intent.setData(uri); intent.putExtra("outputX", outputX);intent.putExtra("outputY", outputY);intent.putExtra("aspectX", aspectX);intent.putExtra("aspectY", aspectY);intent.putExtra("scale", scale);intent.putExtra("return-data", true);intent.putExtra(MediaStore.EXTRA_OUTPUT, createTempCroppedImagefile());intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());// Publish intent to crop picture.activity.startActivityForResult(intent, activity.CROP_PHOTO_REQUEST_CODE);
– OnActivityResult()方法 –
// Photo crop activity.if (requestCode == CROP_PHOTO_REQUEST_CODE) { if (resultCode == RESulT_OK) { Log.d(TAG, "user cropped a photo"); signupScreen.setimage(new PhotoTool(this).getTempCroppedImagefileLocation()); } else Log.d(TAG, "user cancelled photo crop");}
–
如果我取消了裁剪活动,我会成功获得“用户取消的照片裁剪”消息.但是,如果我裁剪图像,新裁剪的图像将出现在目标目录中,但OnActivityResult()函数永远不会被调用.是什么赋予了??
UPDATE
看看LogCat,我发现每次保存裁剪的图像时,“JavaBinder”都会抱怨“Binding Transaction失败”.我知道这与记忆有某种关系.但裁剪文件的大小只有24KB.嗯.
解决方法:
找到了这个问题的问题.不幸的是,这是一个AndroID限制.
见Android cropper cannot go beyond 256?
我已将裁剪图像的输出设置为400×400.不幸的是AndroID的默认裁剪器只能做256×256.这非常令人沮丧,特别是当没有关于限制的文档时.
总结以上是内存溢出为你收集整理的Android Crop Intent不会返回ActivityResult全部内容,希望文章能够帮你解决Android Crop Intent不会返回ActivityResult所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)