Package org.jwebsocket.android.demo

Source Code of org.jwebsocket.android.demo.CameraActivity

// ---------------------------------------------------------------------------
// jWebSocket - Copyright (c) 2010 Innotrade GmbH
// ---------------------------------------------------------------------------
// This program is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published by the
// Free Software Foundation; either version 3 of the License, or (at your
// option) any later version.
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
// for more details.
// You should have received a copy of the GNU Lesser General Public License
// along with this program; if not, see <http://www.gnu.org/licenses/lgpl.html>.
// ---------------------------------------------------------------------------
package org.jwebsocket.android.demo;

import android.app.Activity;
import android.hardware.Camera;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;
import java.io.IOException;
import org.jwebsocket.config.JWebSocketCommonConstants;
import org.jwebsocket.kit.WebSocketException;

/**
*
* @author aschulze
*/
public class CameraActivity extends Activity implements SurfaceHolder.Callback {

    private SurfaceView mSurfaceView;
    private SurfaceHolder mSurfaceHolder;
    private Camera mCamera = null;
    private boolean mPreviewRunning = false;
    private Camera.PictureCallback mPictureCallback;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        Window lWin = getWindow();
        lWin.setFormat(PixelFormat.TRANSLUCENT);

        requestWindowFeature(Window.FEATURE_NO_TITLE);

        // needs to be called before setContentView to be applied
        lWin.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.camera_hvga_p);

        mSurfaceView = (SurfaceView) findViewById(R.id.sfvCamera);
        mSurfaceHolder = mSurfaceView.getHolder();
        mSurfaceHolder.addCallback(this);
        mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

        mPictureCallback = new Camera.PictureCallback() {

            public void onPictureTaken(byte[] imageData, Camera aCamera) {
                try {
                    // save file in public area and send notification
          JWC.saveFile(imageData, "foto.jpg", JWebSocketCommonConstants.SCOPE_PUBLIC, true);
                } catch (WebSocketException ex) {
                    // TODO: handle exception
                }
                Toast.makeText(getApplicationContext(), "Photo has been taken!",
                        Toast.LENGTH_SHORT).show();
            }
        };

        mSurfaceView.setOnClickListener(new OnClickListener() {

            public void onClick(View aView) {
                mCamera.autoFocus(new Camera.AutoFocusCallback() {

                    public void onAutoFocus(boolean arg0, Camera arg1) {
                        mCamera.takePicture(null, null, mPictureCallback);
                        try {
                            Thread.sleep(2000);
                        } catch (InterruptedException ex) {
                        }
                        mCamera.startPreview();
                        mPreviewRunning = true;
                    }
                });

            }
        });
    }

    @Override
    protected void onResume() {
        super.onResume();
        try {
            // JWC.addListener(this);
            JWC.open();
        } catch (WebSocketException ex) {
        }
    }

    @Override
    protected void onPause() {
        try {
            JWC.close();
            // JWC.removeListener(this);
        } catch (WebSocketException ex) {
        }
        super.onPause();
    }

    public void surfaceCreated(SurfaceHolder aSurfaceHolder) {
        mCamera = Camera.open();
    }

    public void surfaceChanged(SurfaceHolder aSurfaceHolder, int aFormat, int aWidth, int aHeight) {
        if (mPreviewRunning) {
            mCamera.stopPreview();
        }
        Camera.Parameters lParms = mCamera.getParameters();
        lParms.setPreviewSize(aWidth, aHeight);
        mCamera.setParameters(lParms);
        try {
            mCamera.setPreviewDisplay(aSurfaceHolder);
        } catch (IOException e) {
            // TODO: exception handling
        }
        mCamera.startPreview();
        mPreviewRunning = true;
    }

    public void surfaceDestroyed(SurfaceHolder aSurfaceHolder) {
        mCamera.stopPreview();
        mPreviewRunning = false;
        mCamera.release();

    }
}
TOP

Related Classes of org.jwebsocket.android.demo.CameraActivity

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.