mport org.opencv.android.BaseLoaderCallback;
import org.opencv.android.CameraBridgeViewBase;
import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener;
import org.opencv.android.LoaderCallbackInterface;
import org.opencv.android.OpenCVLoader;
import org.opencv.core.Mat;

import android.hardware.Camera;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;
import android.widget.ZoomControls;

public class MainActivity extends ActionBarActivity implements CvCameraViewListener{
private static final String TAG = "RGBCom Code::Activity";
private CameraBridgeViewBase mOpenCameraView;
private Camera myCamera;

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
mOpenCameraView.enableView();
break;
default:
super.onManagerConnected(status);
break;
}
}
};


@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE); // 반드시 super.onCreate(savedInstanceState) 전에 삽입할 것.
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mOpenCameraView = (CameraBridgeViewBase) findViewById(R.id.surface_view);
mOpenCameraView.setCvCameraViewListener(this);
mOpenCameraView.enableFpsMeter();


// 줌 기능 부가 Command.
ZoomControls zoomCtr = (ZoomControls) findViewById(R.id.zoomControls1);
zoomCtr.setOnZoomInClickListener(new OnClickListener(){ //확대 부분
@Override
public void onClick(View v) {
Camera.Parameters prm = myCamera.getParameters();
int nowZoom = prm.getZoom();
if(nowZoom < prm.getMaxZoom()){
prm.setZoom(nowZoom + 1);
}
prm.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
myCamera.setParameters(prm);
}
});

zoomCtr.setOnZoomOutClickListener(new OnClickListener(){ // 축소부분
@Override
public void onClick(View v) {
Camera.Parameters prm = myCamera.getParameters();
int nowZoom = prm.getZoom();
if(nowZoom > 0){
prm.setZoom(nowZoom - 1);
}
prm.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
myCamera.setParameters(prm);
}
});


Button button = (Button) findViewById(R.id.bt_1);
button.setOnClickListener(new OnClickListener(){

public void onClick(View v) { // 종료버튼
// TODO Auto-generated method stub
finish(); //종료 커맨드
Toast.makeText(getApplicationContext(), "종료합니다", Toast.LENGTH_SHORT).show();
}
});
}


@Override
public void onPause()
{
super.onPause();
if(mOpenCameraView != null)
mOpenCameraView.disableView();
}

@Override
protected void onResume(){
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public void onCameraViewStarted(int width, int height) {
// TODO Auto-generated method stub

}

@Override
public void onCameraViewStopped() {
// TODO Auto-generated method stub

}

@Override
public Mat onCameraFrame(Mat inputFrame) {
// TODO Auto-generated method stub
return null;
}
}

했던니 화면이 블랙으로 아무것도 안보이고 Zoomcontro를 누르면 중지팝업창이 떠서 프로그램이 죽어버리네요.

ZoomControl 사용가능한 방법을 이번주 2월 13일(금요일)알려주시는분께 사례금 10만원을 드리겠습니다. 몇칠째 머리깨지고 있습니다.

부디 초보자에게 용기를 주세요.