為照相添加權限:

添加方法是在:AndroidManifest.xml文件中的</manifest>之前加上

<uses-permission android:name="android.permission.CAMERA" />

 

 

 

 

package com.js.cameratest; 

 

import android.app.Activity;

import android.hardware.Camera;

import android.os.Bundle;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

 

public class CameraTest extends Activity implementsSurfaceHolder.Callback

{

    SurfaceView surfaceView;

    Button button1;

    Button button2;

    SurfaceHolder surfaceHolder;

    boolean isPreview = false;

    Camera myCamera;

   

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState)

    {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

      

       button1 = (Button)findViewById(R.id.button1);

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

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

       surfaceHolder = surfaceView.getHolder();

       surfaceHolder.addCallback(this);

      surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

       button1.setOnClickListener(new OnClickListener()

       {

          

           @Override

           public void onClick(View v)

           {

             

              //初始化相机资源

              if(!isPreview)

              {

                  //打开Camera

                  myCamera = Camera.open();

              }

             

              if(myCamera != null && !isPreview)

              {

                  try

                    {

                     //设置预览显示

                       myCamera.setPreviewDisplay(surfaceHolder);

                        //立即支行Preview

                        myCamera.startPreview();

                    }

                    catch (Exception e)

                    {

                        e.printStackTrace();

                    }

                    isPreview = true;

              }

             

           }

       });

       button2.setOnClickListener(new OnClickListener()

       {

          

           @Override

           public void onClick(View v)

           {

              //正在显示时

              if(myCamera != null && isPreview)

              {

                  //停止预览

                  myCamera.stopPreview();

                  //释放掉myCamera

                  myCamera.release();

                  myCamera = null;

                  isPreview = false;

              }

             

           }

       });

      

      

    }

 

    @Override

    public void surfaceCreated(SurfaceHolder holder)

    {

        // TODO Auto-generated method stub

       

    }

 

    @Override

    public void surfaceChanged(SurfaceHolder holder, intformat, int width,

            int height)

    {

        // TODO Auto-generated method stub

       

    }

 

    @Override

    public void surfaceDestroyed(SurfaceHolder holder)

    {

        // TODO Auto-generated method stub

       

    }

}

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()