為照相添加權限:
添加方法是在: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
}
}
留言列表