这是安卓手机打开摄像头的一个小程序

 

importandroid.app.Activity;

import android.app.AlertDialog;

importandroid.os.Bundle;

importandroid.util.Log;

import android.view.Menu;

import android.view.MenuItem;

importandroid.widget.Button;

import android.view.View.OnClickListener;

importandroid.view.View;

import android.content.DialogInterface;

importandroid.content.Intent;

importandroid.graphics.Bitmap;

import android.graphics.Canvas;

importandroid.hardware.Camera;

import android.view.SurfaceView;

importandroid.view.SurfaceHolder;

import android.hardware.Camera;

//importandroid.hardware.Camera.PreviewCallback;

 

 

 

public class first extends Activity{

 

    Button button3;

    private staticSurfaceView preview=null;

 private staticVideoCapture        mCamera;

    OnClickListener listener2=null;

    private staticSurfaceHolder previewHolder=null;

   

     Bitmap bmp = null;

     private static Camera camera = null;

     

   

    @Override

 

    protected voidonCreate(Bundle savedInstanceState){

       

       

       

        super.onCreate(savedInstanceState);

    setContentView(R.layout.newfile);

    preview=(SurfaceView)findViewById(R.id.preview);

    previewHolder=preview.getHolder();

    previewHolder.addCallback(surfaceCallback);

    //previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

   

   

    listener2=newOnClickListener()

    {

    public voidonClick(View v)

    {

   

    Intent intent1=newIntent(first.this,MainActivity.class);

    startActivity(intent1);

    }

    };

     button3=(Button)findViewById(R.id.button2);

    button3.setOnClickListener(listener2); 

   

}

   

     private staticSurfaceHolder.Callback surfaceCallback = newSurfaceHolder.Callback() {

 

           /**

            * {@inheritDoc}

            */

           @Override

           public voidsurfaceCreated(SurfaceHolder holder) {

           

 

            try {   camera = Camera.open();

                    camera.setPreviewDisplay(previewHolder);

                //  camera.setPreviewCallback(previewCallback);

                } catch(Throwable t) {

                    Log.e("PreviewDemo-surfaceCallback","Exceptionin setPreviewDisplay()", t);

                }

           

           

           

           }

           @Override

           public voidsurfaceChanged(SurfaceHolder holder, int format, int width, int height) {

      

         Camera.Parameters parameters = camera.getParameters(); 

                     parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 

                         Camera.Size size = getSmallestPreviewSize(width, height, parameters); 

                      if (size != null) { 

                           parameters.setPreviewSize(size.width, size.height); 

                             //              Log.d(TAG, "Usingwidth=" + size.width + " height=" + size.height); 

                       } 

                       camera.setParameters(parameters); 

                      camera.startPreview(); 

 

           

         

           }

 

           @Override

           public voidsurfaceDestroyed(SurfaceHolder holder) {

               // Ignore

           }

           

           

           

           

           

        };

       

       

       

        private staticCamera.Size getSmallestPreviewSize(int width, int height

                        Camera.Parameters parameters) { 

                Camera.Size result = null

                for(Camera.Size size : parameters.getSupportedPreviewSizes()){ 

                         if (size.width <= width&& size.height <= height) { 

                            if (result == null) { 

                                result = size

                            } else

                                 int resultArea = result.width * result.height

                                int newArea = size.width * size.height

                            if (newArea < resultArea

                                    result = size

                            } 

                         } 

                     } 

                    return result

                } 

 

        public voidonResume() {

            super.onResume();

        //  wakeLock.acquire();

            //camera =Camera.open();

        //  startTime = System.currentTimeMillis();

        }

 

   

   

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值