android - 如何获取所有设备的图像路径Uri和Crop

标签 android android-layout android-intent android-library

我的主要项目是从某些来源获取图像(返回 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 开发来说相当陌生!谢谢!)

最佳答案

我安装了该库并确保它链接到我的项目并且位于构建路径中,然后我简单地执行了:

打开文件管理器:

        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/

相关文章:

Android MP4 流 - 无法播放视频

android - Android Studio 中的 System.loadLibrary

android - shouldoverrideurlloading 和 shouldinterceptrequest 之间的区别?

android - 更改操作栏微调器主题

android - 如何控制 Activity 流 - 后退按钮与主页按钮

android - 如何在 Android 10 中创建公用文件夹/文件

android - 动态水平 View

android - 在对话框边界外查看

Android - 在外部浏览器中打开 url 会导致无限循环

java - 如何在另一个/下一个 Activity 中显示微调器选择的值作为 android 中的微调器本身?