android 实现拍照有2种方式
方式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);
}
}
更多相关文章
- android 动画
- Android(安卓)Studio学习:简单控件:滚动显示文本
- android典型代码系列(二十五)------popupwindow的使用
- Android之Camera预览
- android 时间对话框
- Android设置RadioButton在文字的右边
- android 权限
- Android(安卓)Path的使用
- Android6.0修改设备设置中kernel信息