마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 카메라 연결 질문입니다.(에러포함)

+1 추천
package org.techtown.ap_project;

import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.hardware.Camera;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class CameraActivity extends AppCompatActivity {

    ImageView imageView;
    CameraSurfaceView surfaceView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera);

        imageView = (ImageView) findViewById(R.id.imageView8);
        surfaceView = (CameraSurfaceView) findViewById(R.id.surfaceView);

        Button button = (Button) findViewById(R.id.button3);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                capture();
            }
        });
    }

    public void capture(){



        surfaceView.capture(new Camera.PictureCallback() {
            @Override
            public void onPictureTaken(byte[] data, Camera camera) {
                BitmapFactory.Options options = new BitmapFactory.Options();
                options.inSampleSize = 8;
                Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

                imageView.setImageBitmap(bitmap);

                camera.startPreview();

            }
        });
    }
}

<<CameraActivity.java>>

 

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:text="사진찍기" />

    <ImageView
        android:id="@+id/imageView8"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/button3"
        android:layout_toEndOf="@+id/button3"
        app:srcCompat="@android:drawable/btn_star_big_on" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/imageView8"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true">

        <org.techtown.ap_project.CameraSurfaceView
            android:id="@+id/surfaceView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </FrameLayout>
</RelativeLayout>

 
<<activity_camera.xml>>
 
아예 실행이 안됩니다 ㅠㅠ 왜그럴까요
참고로 Do it 안드로이드에서 따라했습니다.
안드로이드 카메라 연결 질문입니다.(에러포함) 님이 2019년 1월 29일 질문

1개의 답변

0 추천
camera.startPreview(); 가 불리기 전에   camera.open 같은 메소드가 불려야 하는데, 올려주신 코드에는 안 보이네요.

https://developer.android.com/reference/android/hardware/Camera 와 책에서 빠진 부분을 찾아 보시는게 좋을 듯 합니다.

단지 이 클래스는 롤리팝 부터 Deprecated 되서, 가능하면 Camera2 를 써서 개발하시는게 좋습니다.

https://myandroidarchive.tistory.com/1
익명사용자 님이 2019년 1월 29일 답변
좋은 답변 감사합니다!!
...