方式1:

mSurfaceView01 = (SurfaceView)findViewById(R.id.SurfaceView01);
mSurfaceHolder01 = mSurfaceView01.getHolder();

mSurfaceHolder01.addCallback(ActivityCamera.this);
// mSurfaceHolder01.setFixedSize(320,240);
mSurfaceHolder01.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

private void initCamera()
{
if(!bIfPreview) //判断相机是否处于预览方式
{
mCamera01 = Camera.open();
}
Camera.Parameters parameters = mCamera01.getParameters();

parameters.setPictureFormat(PixelFormat.JPEG); //设置图片格式
parameters.setPreviewSize(320,240); //设置preview 屏幕大小
parameters.setPictureSize(320,240); //设置图片分辨率

mCamera01.setParameters(parameters);
try {
mCamera01.setPreviewDisplay(mSurfaceHolder01);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mCamera01.startPreview();
bIfPreview = true;
}

private void takePicture()
{
if(mCamera01 != null && bIfPreview)
{
mCamera01.takePicture(shutterCallback, rawCallback, jpegCallback);
}
}

private ShutterCallback shutterCallback = new ShutterCallback()
{
public void onShutter()
{
//
}
};
private PictureCallback rawCallback = new PictureCallback()
{

@Override
public void onPictureTaken(byte[] arg0, Camera arg1) {
// TODO Auto-generated method stub

}

};
private PictureCallback jpegCallback = new PictureCallback()
{

@Override
public void onPictureTaken(byte[] _data, Camera _camera) {
// onPictureTaken 传入的第一个参数即为图片的byte
Bitmap bm = BitmapFactory.decodeByteArray(_data, 0, _data.length);

}
catch(Exception e)
{

}

}

};

方式2:

直接调用系统相机

Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(i, Activity.DEFAULT_KEYS_DIALER)

protected void onActivityResult(int requestCode, int resultCode,Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
if(intent != null)
{
Bundle extras = intent.getExtras();
Bitmap b = (Bitmap) extras.get("data");
// ImageView img = new ImageView(this);
// img.setImageBitmap(b);
// setContentView(img);
}
}

更多相关文章

  1. android 动画
  2. Android(安卓)Studio学习:简单控件:滚动显示文本
  3. android典型代码系列(二十五)------popupwindow的使用
  4. Android之Camera预览
  5. android 时间对话框
  6. Android设置RadioButton在文字的右边
  7. android 权限
  8. Android(安卓)Path的使用
  9. Android6.0修改设备设置中kernel信息

随机推荐

  1. Android实现更换皮肤功能
  2. 安卓各文件存储路径汇总(Android(安卓)fil
  3. android 內存等使用情況
  4. android studio 3.6.1导入项目报错(无法下
  5. Android巴士转发
  6. Android桌面快捷方式的实现
  7. android studio 遇到的问题汇总
  8. Android顶部用tabLayout和viewPager显示
  9. android 中 CheckBox 复选框操作
  10. android之ListView和adapter配合显示图片