package com.demo.android.IsiCamera5;
import java.io.*;
import java.util.*;
import android.app.Activity;
import android.os.Bundle;
import android.content.*;
import android.content.res.*;
import android.hardware.*;
import android.net.*;
import android.provider.MediaStore.Images.Media;
import android.util.*;
import android.view.*;
import android.view.View.*;
import android.widget.*;
public class IsiCamera5Activity extends Activity
implements SurfaceHolder.Callback,Camera.PictureCallback{
SurfaceView cameraView;
SurfaceHolder surfaceHolder;
Camera camera;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cameraView = (SurfaceView) this.findViewById(R.id.CameraView);
surfaceHolder = cameraView.getHolder();
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surfaceHolder.addCallback(this);
cameraView.setFocusable(true);
cameraView.setFocusableInTouchMode(true);
cameraView.setClickable(true);
cameraView.setOnClickListener(new SurfaceView.OnClickListener()
{
@Override
public void onClick(View v) {
camera.takePicture(null, null, IsiCamera5Activity.this);
}
});
}
public void onPictureTaken(byte[] data, Camera camera) {
Uri imageFileUri = getContentResolver().
insert(Media.EXTERNAL_CONTENT_URI,new ContentValues());
try {
OutputStream imageFileOS =
getContentResolver().openOutputStream(imageFileUri);
imageFileOS.write(data);
imageFileOS.flush();
imageFileOS.close();
} catch (FileNotFoundException e) {
Toast t = Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT);
t.show();
} catch (IOException e) {
Toast t = Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT);
t.show();
}
camera.startPreview();
}
public void surfaceChanged(SurfaceHolder holder,int format, int w,int h) {
camera.startPreview();
}
public void surfaceCreated(SurfaceHolder holder) {
camera = Camera.open();
try {
camera.setPreviewDisplay(holder);
Camera.Parameters parameters = camera.getParameters();
if(this.getResources().getConfiguration().orientation !=
Configuration.ORIENTATION_LANDSCAPE) {
parameters.set("orientation","portrait");
camera.setDisplayOrientation(90);
}
}catch (IOException e ) {
camera.release();
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
}
}
camera带储存,连拍版本
最新推荐文章于 2022-01-06 16:26:57 发布