Here is my code:
Using java Syntax Highlighting
- package example.imaging.ape;
- import java.io.IOException;
- import java.util.Iterator;
- import java.util.Set;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.PixelFormat;
- import android.hardware.Camera;
- import android.hardware.Camera.AutoFocusCallback;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.MotionEvent;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
- import android.view.View;
- import android.view.Window;
- import android.view.WindowManager;
- import android.view.View.OnTouchListener;
- public class TakePicture extends Activity implements SurfaceHolder.Callback{
- Camera mCamera;
- Boolean mPreviewRunning = false;
- int imageLayoutHeight;
- int imageLayoutWidth;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //setup camera surface
- getWindow().setFormat(PixelFormat.TRANSLUCENT);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
- setContentView(R.layout.cameralayout);
- SurfaceView mSurfaceView = (SurfaceView) findViewById(R.id.hist_surface_camera);
- SurfaceHolder mSurfaceHolder = mSurfaceView.getHolder();
- mSurfaceHolder.addCallback(this);
- mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
- Bundle extras = getIntent().getExtras();
- imageLayoutHeight = extras.getInt("layoutHeight");
- imageLayoutWidth = extras.getInt("layoutWidth");
- OnTouchListener touchListener = new View.OnTouchListener() {
- public boolean onTouch(View v, MotionEvent e) {
- System.out.println("MAKING PICTURE");
- mCamera.autoFocus(cb);
- return false;
- }
- };
- //setup touch listener
- mSurfaceView.setOnTouchListener(touchListener);
- }
- AutoFocusCallback cb = new AutoFocusCallback() {
- public void onAutoFocus(boolean success, Camera c) {
- c.takePicture(null, null, mPictureCallback);
- }
- };
- Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
- public void onPictureTaken(byte[] imageData, Camera c) {
- System.out.println("Picture taken, now returning");
- Intent resultIntent = new Intent();
- resultIntent.putExtra("cameraImage", imageData);
- System.out.println("put Extra");
- setResult(Activity.RESULT_OK, resultIntent);
- finish();
- }
- };
- //initialize camera
- public void surfaceCreated(SurfaceHolder holder) {
- mCamera = Camera.open();
- }
- public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
- if (mPreviewRunning) {
- mCamera.stopPreview();
- }
- Camera.Parameters p = mCamera.getParameters();
- p.setPreviewSize(h, w);
- System.out.println("PreviewSize: " + h + "," + w);
- p.setPictureSize(h*3,w*3); // is around 1200x900
- p.set("rotation", 90);
- mCamera.setParameters(p);
- try {
- mCamera.setPreviewDisplay(holder);
- } catch (IOException e) {
- e.printStackTrace();
- }
- mCamera.startPreview();
- mPreviewRunning = true;
- }
- public void surfaceDestroyed(SurfaceHolder holder) {
- mCamera.stopPreview();
- mPreviewRunning = false;
- mCamera.release();
- }
- }
Parsed in 0.044 seconds, using GeSHi 1.0.8.4


