Camera Crop-Code не работает на Android 7.0

Мой код работает на всех устройствах с Android 4 до Android 6.x Но после того, как я обновил свое устройство на Android 7.0, код камеры больше не работает. Я получаю черный экран!

Я могу сделать захват с камеры, но после этого я получаю экран назад, если я хочу обрезать изображение

может быть, функция обрезки не получает основной путь экрана растрового изображения

любая идея? вот код:

     img = (ImageView) findViewById(R.id.imageView);
        img_original = (ImageView) findViewById(R.id.imageView_original);
    }

    public void Capture(View view) {
        Capture_Cam();
    }

    private void Capture_Cam() {
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(cameraIntent, 1);

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  


        if (requestCode == 1 && resultCode == RESULT_OK && data != null) {

                picUri = data.getData();
                try {
                    // bitmap2 = MediaStore.Images.Media.getBitmap(this.getContentResolver(), picUri); // bitmap2 = original before cur
                    bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse("file://"+picUri));
                    img_original.setImageBitmap(bitmap);

                } catch (IOException e) {
                    e.printStackTrace();
                }
                performCrop();

        } else if (requestCode == 2) {

            bitmap2=(Bitmap) data.getExtras().get("data");
            img.setImageBitmap(bitmap2);

         }else{
            super.onActivityResult(requestCode, resultCode, data);
        }

    }

       private void performCrop(){
        try {

            Intent cropIntent = new Intent("com.android.camera.action.CROP");
            //indicate image type and Uri
            cropIntent.setDataAndType(picUri, "image/*");
            cropIntent.putExtra("crop", "true");
            cropIntent.putExtra("aspectX", 1);
            cropIntent.putExtra("aspectY", 1);
            cropIntent.putExtra("outputX", 100);
            cropIntent.putExtra("outputY", 100);
            cropIntent.putExtra("scale", true);
            cropIntent.putExtra("return-data", true);
            startActivityForResult(cropIntent, 2);
            Toast toast = Toast.makeText(this, "Done", Toast.LENGTH_SHORT);
        }
        catch(ActivityNotFoundException anfe){
            //display an error message
            String errorMessage = "Whoops - your device doesn't support the crop action!";
            Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
            toast.show();
        }

    }

}

0 ответов

Другие вопросы по тегам