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만원을 드리겠습니다. 몇칠째 머리깨지고 있습니다.
부디 초보자에게 용기를 주세요.
안사요