|
|
|
@ -13,12 +13,14 @@ import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener; |
|
|
|
|
|
|
|
|
|
import android.annotation.SuppressLint; |
|
|
|
|
import android.app.Activity; |
|
|
|
|
import android.hardware.Camera.Size; |
|
|
|
|
import android.os.Bundle; |
|
|
|
|
import android.os.Environment; |
|
|
|
|
import android.util.Log; |
|
|
|
|
import android.view.Menu; |
|
|
|
|
import android.view.MenuItem; |
|
|
|
|
import android.view.MotionEvent; |
|
|
|
|
import android.view.SubMenu; |
|
|
|
|
import android.view.SurfaceView; |
|
|
|
|
import android.view.View; |
|
|
|
|
import android.view.View.OnTouchListener; |
|
|
|
@ -29,7 +31,11 @@ public class Sample5CameraControl extends Activity implements CvCameraViewListen |
|
|
|
|
private static final String TAG = "OCVSample::Activity"; |
|
|
|
|
|
|
|
|
|
private SampleJavaCameraView mOpenCvCameraView; |
|
|
|
|
private List<Size> mResolutionList; |
|
|
|
|
private MenuItem[] mEffectMenuItems; |
|
|
|
|
private SubMenu mColorEffectsMenu; |
|
|
|
|
private MenuItem[] mResolutionMenuItems; |
|
|
|
|
private SubMenu mResolutionMenu; |
|
|
|
|
|
|
|
|
|
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { |
|
|
|
|
@Override |
|
|
|
@ -109,22 +115,50 @@ public class Sample5CameraControl extends Activity implements CvCameraViewListen |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
mColorEffectsMenu = menu.addSubMenu("Color Effect"); |
|
|
|
|
mEffectMenuItems = new MenuItem[effects.size()]; |
|
|
|
|
|
|
|
|
|
int idx = 0; |
|
|
|
|
ListIterator<String> itr = effects.listIterator(); |
|
|
|
|
while(itr.hasNext()) { |
|
|
|
|
String element = itr.next(); |
|
|
|
|
mEffectMenuItems[idx] = menu.add(element); |
|
|
|
|
ListIterator<String> effectItr = effects.listIterator(); |
|
|
|
|
while(effectItr.hasNext()) { |
|
|
|
|
String element = effectItr.next(); |
|
|
|
|
mEffectMenuItems[idx] = mColorEffectsMenu.add(1, idx, Menu.NONE, element); |
|
|
|
|
idx++; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
mResolutionMenu = menu.addSubMenu("Resolution"); |
|
|
|
|
mResolutionList = mOpenCvCameraView.getResolutionList(); |
|
|
|
|
mResolutionMenuItems = new MenuItem[mResolutionList.size()]; |
|
|
|
|
|
|
|
|
|
ListIterator<Size> resolutionItr = mResolutionList.listIterator(); |
|
|
|
|
idx = 0; |
|
|
|
|
while(resolutionItr.hasNext()) { |
|
|
|
|
Size element = resolutionItr.next(); |
|
|
|
|
mResolutionMenuItems[idx] = mResolutionMenu.add(2, idx, Menu.NONE, |
|
|
|
|
Integer.valueOf(element.width).toString() + "x" + Integer.valueOf(element.height).toString()); |
|
|
|
|
idx++; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public boolean onOptionsItemSelected(MenuItem item) { |
|
|
|
|
Log.i(TAG, "called onOptionsItemSelected; selected item: " + item); |
|
|
|
|
mOpenCvCameraView.setEffect((String) item.getTitle()); |
|
|
|
|
Toast.makeText(this, mOpenCvCameraView.getEffect(), Toast.LENGTH_SHORT).show(); |
|
|
|
|
if (item.getGroupId() == 1) |
|
|
|
|
{ |
|
|
|
|
mOpenCvCameraView.setEffect((String) item.getTitle()); |
|
|
|
|
Toast.makeText(this, mOpenCvCameraView.getEffect(), Toast.LENGTH_SHORT).show(); |
|
|
|
|
} |
|
|
|
|
else if (item.getGroupId() == 2) |
|
|
|
|
{ |
|
|
|
|
int id = item.getItemId(); |
|
|
|
|
Size resolution = mResolutionList.get(id); |
|
|
|
|
mOpenCvCameraView.setResolution(resolution); |
|
|
|
|
resolution = mOpenCvCameraView.getResolution(); |
|
|
|
|
String caption = Integer.valueOf(resolution.width).toString() + "x" + Integer.valueOf(resolution.height).toString(); |
|
|
|
|
Toast.makeText(this, caption, Toast.LENGTH_SHORT).show(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|