Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends ActionBarActivity {
- public FrameLayout preview ;
- public Button Shutter_btn;
- private Camera mCamera;
- CameraPreview mPreview;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // Create an instance of Camera
- mCamera = getCameraInstance();
- // Create our Preview view and set it as the content of our activity.
- mPreview = new CameraPreview(this, mCamera);
- FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
- preview.addView(mPreview);
- Shutter_btn = (Button) findViewById(R.id.button3);
- Shutter_btn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- TakePhoto();
- }
- });
- }
- public void TakePhoto()
- {
- PictureCallback mPicture = new PictureCallback() {
- @Override
- public void onPictureTaken(byte[] data, Camera camera) {
- File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
- if (pictureFile == null){
- return;
- }
- try {
- FileOutputStream fos = new FileOutputStream(pictureFile);
- fos.write(data);
- fos.close();
- } catch (FileNotFoundException e) {
- Log.d("TAG", "File not found: " + e.getMessage());
- } catch (IOException e) {
- Log.d("TAG", "Error accessing file: " + e.getMessage());
- }
- }
- };
- mCamera.takePicture(null, null, mPicture);
- }
- public void CameraRelease()
- {
- if(mCamera!=null){
- mCamera.stopPreview();
- mCamera.setPreviewCallback(null);
- mCamera.release();
- mCamera = null;
- }
- }
- private void galleryAddPic(String ImagePath) {
- Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
- File f = new File(ImagePath);
- Uri contentUri = Uri.fromFile(f);
- mediaScanIntent.setData(contentUri);
- this.sendBroadcast(mediaScanIntent);
- }
- public final int MEDIA_TYPE_IMAGE = 1;
- /** Create a file Uri for saving an image or video */
- private Uri getOutputMediaFileUri(int type){
- return Uri.fromFile(getOutputMediaFile(type));
- }
- /** Create a File for saving an image or video */
- private File getOutputMediaFile(int type){
- // To be safe, you should check that the SDCard is mounted
- // using Environment.getExternalStorageState() before doing this.
- File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyCameraApp");
- // This location works best if you want the created images to be shared
- // between applications and persist after your app has been uninstalled.
- // Create the storage directory if it does not exist
- if (! mediaStorageDir.exists()){
- if (! mediaStorageDir.mkdirs()){
- Log.d("MyCameraApp", "failed to create directory");
- Toast.makeText(MainActivity.this, "Dirrectory not been made " +mediaStorageDir , Toast.LENGTH_LONG).show();
- return null;
- }
- }
- Toast.makeText(MainActivity.this, "Dirrectory not been made " +mediaStorageDir , Toast.LENGTH_LONG).show();
- // Create a media file name
- String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
- File mediaFile;
- if (type == MEDIA_TYPE_IMAGE){
- mediaFile = new File(mediaStorageDir.getPath() + File.separator +
- "IMG_"+ timeStamp + ".jpg");
- }
- else {
- return null;
- }
- return mediaFile;
- }
- /** A safe way to get an instance of the Camera object. */
- public Camera getCameraInstance(){
- Camera c = null;
- try {
- c = Camera.open(); // attempt to get a Camera instance
- }
- catch (Exception e){
- Toast.makeText(MainActivity.this, "No Camera", Toast.LENGTH_SHORT).show();// no camera on this device
- // Camera is not available (in use or does not exist)
- }
- return c; // returns null if camera is unavailable
- }
- }
- package ahmed.Labib.mycamera;
- import java.io.IOException;
- import android.content.Context;
- import android.hardware.Camera;
- import android.util.Log;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
- /** A basic Camera preview class */
- public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
- private SurfaceHolder mHolder;
- public Camera mCamera;
- public CameraPreview(Context context, Camera camera) {
- super(context);
- mCamera = camera;
- // Install a SurfaceHolder.Callback so we get notified when the
- // underlying surface is created and destroyed.
- mHolder = getHolder();
- mHolder.addCallback(this);
- // deprecated setting, but required on Android versions prior to 3.0
- mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
- }
- public void surfaceCreated(SurfaceHolder holder) {
- // The Surface has been created, now tell the camera where to draw the preview.
- try {
- mCamera.setPreviewDisplay(holder);
- mCamera.startPreview();
- } catch (IOException e) {
- Log.d("TAG", "Error setting camera preview: " + e.getMessage());
- }
- }
- public void surfaceDestroyed(SurfaceHolder holder) {
- // empty. Take care of releasing the Camera preview in your activity.
- }
- public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
- // If your preview can change or rotate, take care of those events here.
- // Make sure to stop the preview before resizing or reformatting it.
- if (mHolder.getSurface() == null){
- // preview surface does not exist
- return;
- }
- // stop preview before making changes
- try {
- mCamera.stopPreview();
- } catch (Exception e){
- // ignore: tried to stop a non-existent preview
- }
- // set preview size and make any resize, rotate or
- // reformatting changes here
- // start preview with new settings
- try {
- mCamera.setPreviewDisplay(mHolder);
- mCamera.startPreview();
- } catch (Exception e){
- Log.d("TAG", "Error starting camera preview: " + e.getMessage());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement