사진 촬영 후 Android 앱에 검은 색 화면이 표시되지만 디버거에 연결하면 작동합니다.

Sheldon Shane Govender

나는 며칠 동안이 문제로 어려움을 겪어 왔으며 지나칠 수없는 것 같습니다. 기본적으로 카메라 인 텐트를 시작하는 버튼이있는 3 개의 이미지 뷰가있는 활동이 있습니다.

문제는 디버거를 통해 개발하고 실행하는 동안 모든 것이 완벽하게 작동하지만 사진 미리보기를 수락 한 후 앱을 단독으로 실행하면 (디버거가 아닌 전화로만) 검은 화면이 표시되고 그 후에는 아무것도하지 않는다는 것입니다 .

필요한 것은 사진이 이미지보기에 표시되고 갤러리에 저장되는 것뿐입니다. 디버그 모드에서는이 모든 작업을 수행하지만 앱을 독립적으로 실행해야하는 경우에는 수행하지 않습니다.

나는이 문제로 완전히 잃어 버렸습니다. 누군가 / 누구든지 나를 도울 수 있습니다.

나는 이것이 비동기 문제라고 생각하지만 나는 안드로이드에 매우 익숙하지 않고 이것을 구현하는 방법을 모르겠습니다. 내 머리와 내가 읽은 / 시청 한 튜토리얼을 통해-이것은 쉬운 과정이어야하지만 얻을 수는 없습니다. 일하다

활동 레이아웃에 대한 내 코드는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".PhotoActivity">

    <ImageView
        android:id="@+id/imgPhoto1"
        android:layout_width="236dp"
        android:layout_height="136dp"
        android:layout_marginTop="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/dds_logo" />

    <ImageView
        android:id="@+id/imgPhoto2"
        android:layout_width="236dp"
        android:layout_height="136dp"
        android:layout_marginTop="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imgPhoto1"
        app:srcCompat="@drawable/dds_logo" />

    <ImageView
        android:id="@+id/imgPhoto3"
        android:layout_width="236dp"
        android:layout_height="136dp"
        android:layout_marginTop="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imgPhoto2"
        app:srcCompat="@drawable/dds_logo" />

    <Button
        android:id="@+id/btnTakePhoto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="52dp"
        android:text="Take Photo"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imgPhoto3"
        app:layout_constraintVertical_bias="1.0" />

</android.support.constraint.ConstraintLayout>

다음은 onClick 이벤트에 대한 코드입니다.

public void onClick(View v) {
        try {
            //respond to clicks
            if (v.getId() == R.id.btnTakePhoto) {
                captureImage();
            }
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }

인 텐트에 대한 호출은 다음과 같습니다.

private void captureImage() {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(takePictureIntent, CAPTURE_IMAGE_REQUEST);

    }

다음은 onActivtyResult입니다.

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

            if (!Debug.isDebuggerConnected()){
                Debug.waitForDebugger();
                Log.d("debug", "started"); // Insert a breakpoint at this line!!
            }
            if(numPhotos < 2) {
                Bundle extras = data.getExtras();
                Bitmap imageBitmap = (Bitmap) extras.get("data");

                String savedImageURL = MediaStore.Images.Media.insertImage(
                        getContentResolver(),
                        imageBitmap,
                        "Serial",
                        "Refresh Verification photo"
                );

                switch (numPhotos) {
                    case 0:
                        imgPhoto1.setImageBitmap(imageBitmap);
                        break;
                    case 1:
                        imgPhoto2.setImageBitmap(imageBitmap);
                        break;
                    case 2:
                        imgPhoto3.setImageBitmap(imageBitmap);
                        break;
                }
                numPhotos++;
            }
            else
            {
                numPhotos = 0;
                Toast.makeText(PhotoActivity.this, "Max # of ohotos reached", Toast.LENGTH_LONG).show();
                Intent i = new Intent(getApplicationContext(), MenuActivity.class);
                startActivity(i);
                finish();
            }
        }

        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
Sheldon Shane Govender

모두 좋은 날,

문제를 해결할 수 있었는데 카메라로 촬영 한 이미지의 품질이 너무 높아서 발생합니다.

이미지를 압축 한 후 모든 것이 잘 작동합니다 (미리보기 및 저장 모두), 변경해야 할 유일한 것은 OnActivityResult 메서드입니다.

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

try {
    Bundle extras = data.getExtras();
    final Bitmap imageBitmap = (Bitmap) extras.get("data");
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    imageBitmap.compress(Bitmap.CompressFormat.JPEG, 60, bytes);
    byte[] byteArray = bytes.toByteArray();
    final Bitmap compressedBitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

    if (numPhotos < 3) {

        switch (numPhotos) {
            case 0:
                imgPhoto1.setImageBitmap(compressedBitmap);
                savebitmap(compressedBitmap);
                numPhotos++;
                break;
            case 1:
                imgPhoto2.setImageBitmap(compressedBitmap);
                savebitmap(compressedBitmap);
                numPhotos++;
                break;
            case 2:
                imgPhoto3.setImageBitmap(compressedBitmap);
                savebitmap(compressedBitmap);
                numPhotos = 0;
                Toast.makeText(PhotoActivity.this, "Max # of ohotos reached", Toast.LENGTH_LONG).show();
                Intent i = new Intent(getApplicationContext(), MenuActivity.class);
                startActivity(i);
                finish();
                break;

        }
    } else {
        numPhotos = 0;
        Toast.makeText(PhotoActivity.this, "Max # of ohotos reached", Toast.LENGTH_LONG).show();
        Intent i = new Intent(getApplicationContext(), MenuActivity.class);
        startActivity(i);
        finish();
    }
}
catch(Exception e){
    e.printStackTrace();;
}

}

다음은 savebitmap 메소드입니다.

public static File savebitmap(Bitmap bmp) throws IOException {

        String date = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault()).format(new Date());

        File folder = new File(Environment.getExternalStorageDirectory()
                + "/RefreshPhotos");

        boolean var = false;
        if (!folder.exists())
            var = folder.mkdir();

        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
        File f = new File(folder
                + File.separator + "RefreshPhoto_" + date + ".png");
        f.createNewFile();
        FileOutputStream fo = new FileOutputStream(f);
        fo.write(bytes.toByteArray());
        fo.close();
        return f;
    }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android는 사진 촬영 후 저장 / 삭제 화면이 표시되는지 감지합니다.

분류에서Dev

SQLite-앱이 처음 실행되었지만 이제는 시작되지 않고 다시 설치 (또는 다시 실행) 한 후에도 검은 색 화면에 멈 춥니 다. (사진 / 코드 포함) Android

분류에서Dev

Nexus 7에서 Android 앱이 시작되지 않음 (검은 색 화면 표시)

분류에서Dev

Angular 앱이 iOS에서 시작 화면 후 검은 색 화면을 표시 함

분류에서Dev

Android지도에서 USB를 통해 연결된 기기에 빈 화면 (검은 색 화면)이 표시됨

분류에서Dev

Chromium YouTube 동영상에 검은 색 화면이 표시되고 오디오 만 표시되며 동영상의 시각적 콘텐츠는 표시되지 않습니다.

분류에서Dev

촬영 한 Camera2 API 사진이 갤러리 앱에 표시되지 않습니다.

분류에서Dev

Ubuntu 16.04.1 Nvidia가 작동하지만 Intel에 검은 색 화면이 표시됨

분류에서Dev

Android 서비스에서 전면 카메라로 사진 촬영

분류에서Dev

내 앱에 스플래시 화면이 표시되지 않고 두 번째 활동이 실행 된 후 빈 흰색 화면 만 나타납니다.

분류에서Dev

sdcard에 저장된 이미지는 Android에서 GPUImageView를 사용하여 검은 화면 만 표시합니다.

분류에서Dev

Android에서 자동 초점으로 연속 사진 촬영

분류에서Dev

사용자 지정 Android 커널에 검은 색 화면 표시

분류에서Dev

UIImagePickerController 사진 사용 / 다시 촬영 버튼이 작동하지 않음

분류에서Dev

Android 마켓 (Google Play)에서 앱 이름으로 검색하면 앱이 표시되지 않습니다.

분류에서Dev

커스텀 카메라에서 촬영하고 저장 한 후 활동에 사진을 표시하는 방법

분류에서Dev

로그인 후 VM에 검은 색 화면이 표시됨

분류에서Dev

Android Emulator에 Android가 깜박이면서 검은 색 화면이 표시되는 이유는 무엇입니까?

분류에서Dev

화면이 검은 색이지만 xrandr에 따라 연결됨

분류에서Dev

Linux VM에 대한 VNC 연결은 회색 화면 만 표시하지만 그놈이 실행되지 않습니까?

분류에서Dev

전체 화면 모드에서 탐색보기를 사용하는 Android 활동은 하단에 회색 반투명 영역이 표시됩니다.

분류에서Dev

설치 14.04 후 검은 색 화면 및 나중에 깨지는 화면, 어디서 시작해야합니까?

분류에서Dev

nexus 4에서 작동하지 않는 사진이나 동영상을 촬영하기위한 Android 파일 선택기 또는 카메라

분류에서Dev

Android : 스플래시 화면 후 검은 색 화면이 나옴

분류에서Dev

Images.xcassets가 포함 된 SplashScreen은 시뮬레이터에서 작동하지만 iPad에서는 검은 색 화면으로 작동합니다.

분류에서Dev

Ubuntu는 다시 시작한 후 검은 화면으로 부팅되지만 종료 된 후에는 작동합니다

분류에서Dev

iOS에서 사진 촬영과 동시 이미지 처리 작업

분류에서Dev

SurfaceView에 검은 색 화면이 표시됨-Android

분류에서Dev

iOS (Xamarin)에서 시작 후 검은 색 화면

Related 관련 기사

  1. 1

    Android는 사진 촬영 후 저장 / 삭제 화면이 표시되는지 감지합니다.

  2. 2

    SQLite-앱이 처음 실행되었지만 이제는 시작되지 않고 다시 설치 (또는 다시 실행) 한 후에도 검은 색 화면에 멈 춥니 다. (사진 / 코드 포함) Android

  3. 3

    Nexus 7에서 Android 앱이 시작되지 않음 (검은 색 화면 표시)

  4. 4

    Angular 앱이 iOS에서 시작 화면 후 검은 색 화면을 표시 함

  5. 5

    Android지도에서 USB를 통해 연결된 기기에 빈 화면 (검은 색 화면)이 표시됨

  6. 6

    Chromium YouTube 동영상에 검은 색 화면이 표시되고 오디오 만 표시되며 동영상의 시각적 콘텐츠는 표시되지 않습니다.

  7. 7

    촬영 한 Camera2 API 사진이 갤러리 앱에 표시되지 않습니다.

  8. 8

    Ubuntu 16.04.1 Nvidia가 작동하지만 Intel에 검은 색 화면이 표시됨

  9. 9

    Android 서비스에서 전면 카메라로 사진 촬영

  10. 10

    내 앱에 스플래시 화면이 표시되지 않고 두 번째 활동이 실행 된 후 빈 흰색 화면 만 나타납니다.

  11. 11

    sdcard에 저장된 이미지는 Android에서 GPUImageView를 사용하여 검은 화면 만 표시합니다.

  12. 12

    Android에서 자동 초점으로 연속 사진 촬영

  13. 13

    사용자 지정 Android 커널에 검은 색 화면 표시

  14. 14

    UIImagePickerController 사진 사용 / 다시 촬영 버튼이 작동하지 않음

  15. 15

    Android 마켓 (Google Play)에서 앱 이름으로 검색하면 앱이 표시되지 않습니다.

  16. 16

    커스텀 카메라에서 촬영하고 저장 한 후 활동에 사진을 표시하는 방법

  17. 17

    로그인 후 VM에 검은 색 화면이 표시됨

  18. 18

    Android Emulator에 Android가 깜박이면서 검은 색 화면이 표시되는 이유는 무엇입니까?

  19. 19

    화면이 검은 색이지만 xrandr에 따라 연결됨

  20. 20

    Linux VM에 대한 VNC 연결은 회색 화면 만 표시하지만 그놈이 실행되지 않습니까?

  21. 21

    전체 화면 모드에서 탐색보기를 사용하는 Android 활동은 하단에 회색 반투명 영역이 표시됩니다.

  22. 22

    설치 14.04 후 검은 색 화면 및 나중에 깨지는 화면, 어디서 시작해야합니까?

  23. 23

    nexus 4에서 작동하지 않는 사진이나 동영상을 촬영하기위한 Android 파일 선택기 또는 카메라

  24. 24

    Android : 스플래시 화면 후 검은 색 화면이 나옴

  25. 25

    Images.xcassets가 포함 된 SplashScreen은 시뮬레이터에서 작동하지만 iPad에서는 검은 색 화면으로 작동합니다.

  26. 26

    Ubuntu는 다시 시작한 후 검은 화면으로 부팅되지만 종료 된 후에는 작동합니다

  27. 27

    iOS에서 사진 촬영과 동시 이미지 처리 작업

  28. 28

    SurfaceView에 검은 색 화면이 표시됨-Android

  29. 29

    iOS (Xamarin)에서 시작 후 검은 색 화면

뜨겁다태그

보관