1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| public class CameraActivity extends Activity implements Callback {
final static String DEBUG_TAG = "CameraActivity";
final static String TAG = "CameraActivity";
Camera camera;Context contxtt;
private int cameraId = 0;
Button photo;
Camera.Parameters parameters;
private SurfaceHolder sHolder;
contxtt=cc;
camera = Camera.open();
SurfaceView sv = sg;
sHolder = sv.getHolder();
sHolder.addCallback(this);
sHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
try {
((Camera) camera).setPreviewDisplay(sHolder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
parameters = camera.getParameters();
// parameters.setRotation(90);
// if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE)
// {parameters.set("orientation","landscape");parameters.setRotation(90);}
//if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT)
//{parameters.set("orientation","portrait");parameters.setRotation(90);}
camera.startPreview();
// parameters.set("orientation","portrait");
camera.setParameters(parameters); //(90);
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// set any cam params you need...
camera.startPreview();
}
@Override
protected void onPause() {
if (camera != null) {
camera.release();
camera = null;
}
super.onPause();
}
Camera.ShutterCallback shuttercallback = new Camera.ShutterCallback() {
@Override
public void onShutter() {
// TODO Auto-generated method stub
Log.d(TAG, "onShutter'd");
}
};
Camera.PictureCallback rawpicture = new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] arg0, Camera arg1) {
// TODO Auto-generated method stub
Log.d(TAG, "onPictureTaken - raw");
}
};
Camera.PictureCallback jpegcallback = new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera arg1) {
// TODO Auto-generated method stub
File pictureFileDir = getDir();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss");
String date = dateFormat.format(new Date());
final String photoFile = "Picture_" + date + ".jpg";
String filename = pictureFileDir.getPath() + File.separator
+ photoFile;
File pictureFile = new File(Environment.getExternalStorageDirectory(), photoFile);
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
Toast.makeText(laclasse.this,
"New Image saved:" + photoFile, Toast.LENGTH_LONG)
.show();
} catch (Exception error) {
Log.d(CameraActivity.DEBUG_TAG, "File" + filename
+ "not saved: " + error.getMessage());
Toast.makeText(laclasse.this,
"Image could not be saved.", Toast.LENGTH_LONG).show();
}
} } // End else block
;
@Override
public void surfaceCreated(SurfaceHolder holder) {
// set any cam params you need...
camera.startPreview();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
camera.stopPreview();
camera.release();
}
private File getDir() {
File sdDir = Environment.getExternalStorageDirectory();
return new File(sdDir, "CameraAPIDemo");
}
public void takePhoto() {
camera.takePicture(shuttercallback, rawpicture, jpegcallback);
}
} |
Partager