ImageView не показывает захваченное изображение с помощью камеры в Android - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь выбрать изображение для регистрации.При нажатии ImageView пользователю будет предоставлен выбор между фотосъемкой или выбором из его / ее галереи.Когда пользователь выбирает опцию галереи, он будет отображать выбранное изображение.Когда пользователь выбирает опцию камеры, ImageView не отображает изображение.Ниже приведен мой код для OnActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent imgdata) {
        super.onActivityResult(requestCode, resultCode, imgdata);
        if (requestCode == SELECT_IMAGE && resultCode == RESULT_OK && imgdata != null) {
            selectedimage = imgdata.getData();
            try {
                InputStream inputStream = getContentResolver().openInputStream(selectedimage);
                Bitmap yourselectedimage = BitmapFactory.decodeStream(inputStream);
                imgchild.setImageBitmap(yourselectedimage);

            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
            }
        }
        if (requestCode == CAPTURE_IMAGE && resultCode == RESULT_OK && imgdata != null) {
            camImg =(Bitmap) imgdata.getExtras().get("img");
            try {
                imgchild.setImageBitmap(camImg);

            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
            }
        }
    }

. ImageView должен отображать снятый снимок с камеры.

Ответы [ 3 ]

0 голосов
/ 15 февраля 2019

Я думаю, что так должно быть

    Bitmap imageBitmap = (Bitmap) extras.get("data");
    mImageView.setImageBitmap(imageBitmap);
0 голосов
/ 15 февраля 2019

Я надеюсь, что это сработает для вас.

Установите изображение таким образом

    Bitmap photo = (Bitmap) data.getExtras().get("data");
    imageView.setImageBitmap(photo);


   // CALL THIS METHOD TO GET THE ACTUAL PATH
   Uri tempUri = getImageUri(getApplicationContext(), photo);
   File finalFile = new File(getRealPathFromURI(tempUri));
   Log.e("path", finalFile.getAbsolutePath());

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

 public String getRealPathFromURI(Uri uri) {
            Cursor cursor = getContentResolver().query(uri, null, null, null, null);
            cursor.moveToFirst();
            int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
            return cursor.getString(idx);
        }
0 голосов
/ 15 февраля 2019

Читая ваш код, я думаю, что весьма вероятно, что camImg является нулевым, поскольку способ извлечения растрового изображения из Intent является неправильным.

Bitmap реализует Parcelable, поэтому вам необходимоизвлечь это так:

camImg = (Bitmap) imgdata.getParcelableExtra("img");
...