2

我有我的主要项目,它从某些来源获取图像(返回 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);  

然后检索裁剪的图像还是我必须做其他额外的事情?

  1. 另一个问题:当我将其投放市场时,这也会影响我的应用程序(用户是否需要下载或接受额外库的许可?

我想确保我的应用程序适用于所有内容,那么这是最好的方法吗?或者有没有更好的方法,请解释一下。(同时保持简单,对 Android 开发人员来说相当新!,谢谢!)

4

1 回答 1

4

我安装了库并确保它链接到我的项目并且在构建路径中,然后我只是做了:

打开文件管理器:

        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);

我已经在一些设备上对此进行了测试,它工作得很好而且很漂亮。也适用于相机。

于 2012-07-05T16:49:34.367 回答