小编Wys*_*sie的帖子

Android:使用固定宽高比的相机拍摄后拍摄图像

我正在尝试在拍摄后裁剪图像,我的代码如下:

   private void doTakePhotoAction() {

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
        intent.putExtra("crop", "true");
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        intent.putExtra("outputX", 96);
        intent.putExtra("outputY", 96);

        try {
            intent.putExtra("return-data", true);
            startActivityForResult(intent, PICK_FROM_CAMERA);
        } catch (ActivityNotFoundException e) {
            //Do nothing for now
        }
    }
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我可以进入裁剪模式,裁剪图片.但是,不强制执行1:1宽高比,并且outputX和outputY都不是.我相信这是因为意图是拍照,而不是剪裁.我还从Intent中编写了另一个getData()方法,然后使用以下方法:

Intent intent = new Intent("com.android.camera.action.CROP");
intent.setClassName("com.android.camera", "com.android.camera.CropImage");
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我得到以下运行时错误:

E/AndroidRuntime(14648): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.camera/com.android.camera.CropImage}: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!:)

android

22
推荐指数
2
解决办法
6万
查看次数

标签 统计

android ×1