我的主要项目是从某些来源获取图像(返回 Uri)。下一步是按比例裁剪图像(触摸输入)。我最近发现一些手机制造商搞乱了 android 基类,所以:
com.android.camera.action.crop
并不总是存在。
所以我找到了一个可以进行裁剪的库:https://github.com/lvillani/android-cropimage 我已将该库添加到我的 Eclipse 构建路径和项目库中。
我的问题是,我可以像这样打开库吗:
Intent intent = new Intent("com.android.camera.action.CROP");
//intent.setClassName("com.android.camera", "com.android.camera.CropImage");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("output", Uri);
intent.putExtra("outputFormat", "JPEG");
startActivityForResult(intent, 1);
然后检索裁剪后的图像,还是我必须做其他额外的事情?
- 另一个问题:当我将应用程序转换市场时,这也会影响我的应用程序(用户是否需要下载或接受额外库的许可?
我想确保我的应用程序适用于所有情况,那么这是最好的方法吗?或者有没有更好的方法,请说明。 (还要保持简单,对于 Android 开发来说相当陌生!谢谢!)
最佳答案
我安装了该库并确保它链接到我的项目并且位于构建路径中,然后我简单地执行了:
打开文件管理器:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), PICK_FROM_FILE);
或者,如果您想从相机捕获
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra("return-data", true);
startActivityForResult(intent, GET_IMAGE_FROM_CAMERA);
然后裁剪图像:
Intent intent = new Intent(this, com.android.camera.CropImage.class);
intent.setData(uri);
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP);
我已经在一些设备上测试过它,它工作得很好。也适用于相机。
关于android - 如何获取所有设备的图像路径Uri和Crop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11342056/