照相界面图:
package com.example.android27_vedio;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.PixelCopy;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 照相机
* 相机画面竖向需在清单文件加上 android:screenOrientation="landscape"
*/
public class CamerActivity extends AppCompatActivity {
private SurfaceView sv_camer;
private Camera camera;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camer);
sv_camer = (SurfaceView) findViewById(R.id.sv_camer);
sv_camer.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
//打开照相机
camera = Camera.open();
//给摄像头设置参数
Camera.Parameters parameters= camera.getParameters();
//设置照片的输出格式
parameters.setPictureFormat(PixelFormat.JPEG);
parameters.set("jpeg-quality",85);
camera.setParameters(parameters);
//将画面展示到SurfaceView
try {
camera.setPreviewDisplay(sv_camer.getHolder());
camera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
}
});
}
public void paizhao(View view){
//拍照
camera.takePicture(null, null, new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] bytes, Camera camera) {
//压缩
Bitmap bitmap= BitmapFactory.decodeByteArray(bytes,0,bytes.length);
try {
FileOutputStream fos=new FileOutputStream("/mnt/sdcard/优快云/camera/150825"+System.currentTimeMillis()+".png");
bitmap.compress(Bitmap.CompressFormat.PNG,85,fos);
camera.stopPreview();
camera.startPreview();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
});
}
}
//最后需要在清单文件添加权限
<!-- 给照相机添加权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- 创建文件 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />