public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
camera.startPreview();
//auto_Focusing(camera);
final Button Btn_Focus = (Button) findViewById(R.id.Btn_Focus);
Btn_Focus.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Btn_Focus.setEnabled(true);
auto_Focusing(camera);
}
});
Binarization(camera, holder);
}
============================
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
camera.startPreview();
auto_Focusing(camera);
final CameraSurfaceView cameraView = new CameraSurfaceView(getApplicationContext());
final FrameLayout previewFrame = (FrameLayout) findViewById(R.id.previewFrame);
previewFrame.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
if(event.getAction()==MotionEvent.ACTION_UP)
{
auto_Focusing(camera);
}
return false;
}
});
Binarization(camera, holder);
}
이런식으로 두개의 코드를 짜봤습니다. 물론 밑에 코드가 원래 하려던 방식이었고 화면터치가 안되길래 버튼클릭으로 하려고 했으나 전부 "앱이름 앱이 중지하였습니다" 가 뜨고 종료됩니다.ㅣ
로그 확인 결과는
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.FrameLayout.setOnTouchListener(android.view.View$OnTouchListener)' on a null object reference
at com.example.ai.camera.MainActivity$CameraSurfaceView.surfaceChanged(MainActivity.java:244)
244번 라인은 두 코드 전부 previewFrame.setOnTouchListener(new OnTouchListener() 입니다.
이유를 아시는분은 답변해주시기 바랍니다.