80,471
社区成员




import android.hardware.Camera;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements SurfaceHolder.Callback
{
Camera camera;
SurfaceView surfaceView;
SurfaceHolder surfaceHolder;
Button btnOpen;
Button btnClose;
Boolean isPreview=false;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView=(SurfaceView)findViewById(R.id.surfaceView);
btnOpen=(Button)findViewById(R.id.open);
btnClose=(Button)findViewById(R.id.close);
surfaceHolder=surfaceView.getHolder();
surfaceHolder.addCallback(this);
btnOpen.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
initCamera();
}
});
btnClose.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
if (camera!=null && isPreview)
{
camera.stopPreview();
camera.release();
camera=null;
isPreview=false;
}
}
});
}
public void initCamera(){
if (!isPreview)
{
camera=Camera.open();
}
if (camera!=null && !isPreview)
{
try
{
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
} catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
isPreview=true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void surfaceCreated(SurfaceHolder holder)
{
// TODO Auto-generated method stub
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder)
{
// TODO Auto-generated method stub
}
}
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name = "android.hardware.camera" />
<uses-feature android:name = "android.hardware.camera.autofocus" />
call getNumberOfCameras
/**
* Returns the number of physical cameras available on this device.
*/
你是不是在模拟器上跑的?