рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛

рдлреЛрди рдкрд░ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рд╕реЗ рд╣реА рдореЗрд░реА рджрд┐рд▓рдЪрд╕реНрдкреА рд░рд╣реА рд╣реИред рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ... рдФрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ Android'om рд╡рд╛рд▓рд╛ рдлреЛрди рдорд┐рд▓рд╛ред рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖред рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИред



рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рддрд╕реНрд╡реАрд░реЗрдВ рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред



рд╕рднреА рдСрдкрд░реЗрд╢рди рдХреИрдорд░рд╛ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдПрдХ рдЪрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ

Camera camera;
      
      





рдФрд░ рдЙрд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ

 camera = Camera.open();
      
      





рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

 camera.release();
      
      





рдЕрдиреНрдпрдерд╛, рдХреИрдорд░рд╛ рд▓реЙрдХ рдФрд░ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджреБрд░реНрдЧрдо рд░рд╣реЗрдЧрд╛ред



рдПрдХ рдХреИрдорд░рд╛ рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди onResume рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдСрдирдкреЙрдЬрд╝ рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрддрд╛ рд╣реИред



рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдПрдХ рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛ рдПрдХ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╡рд┐рдВрдбреЛ (рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рд╡рд┐рдВрдбреЛ рд╕рд░рдлреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд░рдлреЗрд╕ рд╡реНрдпреВ рд╕реНрдХреНрд░реАрди рдкрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВрдЧреЗ

 SurfaceView preview;
      
      





рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ setPreviewDisplay рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд░реНрдлреЗрд╕рд╣реЙрд▓реНрдб рдХреНрд▓рд╛рд╕ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред

 SurfaceHolder surfaceHolder; surfaceHolder = preview.getHolder(); camera.setPreviewDisplay(surfaceHolder);
      
      





рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрд▓ рдХрд░реЗрдВ

 camera.startPreview();
      
      





рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреИрдорд░рд╛ рддрд╕реНрд╡реАрд░реЗрдВ рд▓реЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред



рджрд░рдЕрд╕рд▓, рддрд╕реНрд╡реАрд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

 void takePicture(Camera.ShutterCalback shutter, Camera.PictureCallback raw, Camera.PictureCallback postview, Camera.PictureCallback jpg);
      
      





рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рд╡реИрд╕реЗ, рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╢реВрдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рд╣реИрдВ:



рдЯреЗрдХрдкрд┐рдХреНрдпреЛрд░ рдХреЙрд▓ рдХреЛ рд╕реАрдзреЗ рдмрдЯрди рдХреЗ рдСрдирдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдлреЛрдЯреЛ рдЦреАрдВрдЪрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдСрдЯреЛрдлреЛрдХрд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, Camera.AutoFocusCallback рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

 public void onAutoFocus(boolean paramBoolean, Camera paramCamera);
      
      





рдлрд┐рд░, рд╣реИрдВрдбрд▓рд░ рдореЗрдВ camera.autoFocus () рдмрдЯрди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣реИрдВрдбрд▓рд░ рдХреЛ рдПрдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдлрд▓ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдХ рддрд╕реНрд╡реАрд░ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдВрдЧреЗред



рдЖрдк рд╕рд░реНрдлреЗрд╕рд╣рд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрдлреЗрд╕рд╣рд╛рд░реНрдб рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

surfaceHolder.addCallback();







рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

 public void surfaceCreated(SurfaceHolder holder); public void surfaceChanged(SurfaceHolder holder, int format, int width, int height); public void surfaceDestroyed(SurfaceHolder holder);
      
      





рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╕рд░рдлреЗрд╕ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрджрд┐ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╣рдорд╛рд░реЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 LayoutParams lp = preview.getLayoutParams(); lp.width =  ; lp.height =  ; preview.setLayoutParams(lp);
      
      





рдХреИрдорд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рд╕реНрдерд╛рди рдХреЛ рддреБрд░рдВрдд рд╕реЗрдЯ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);





рдЕрдиреНрдпрдерд╛, рд╣рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдХреЗ рд╕реНрдерд╛рди рдХреЛ рд╕рддрд╣ рдкрд░ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, camera.setDisplayOrientation(0)



рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЛ рдШреБрдорд╛рдирд╛ рд╣реЛрдЧрд╛ред camera.setDisplayOrientation(0)



ред

рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреНрд░реАрди рдХреЛ рдШреБрдорд╛рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕ рд╕рдордп, onPause рдФрд░ onResume рдХрд╣рддреЗ рд╣реИрдВ, рд╕рд░рдлреЗрд╕ рдХреЛ рд░реАрдХреНрд░рд┐рдПрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдпрд╣ рдПрдХ Camera.PreviewCallback рд╣реИрдВрдбрд▓рд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ

 void onPreviewFrame(byte[] paramArrayOfByte, Camera paramCamera);
      
      





рдЖрдк рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдФрд░ рдЕрдВрддрд┐рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБред рдЕрдХреНрд╕рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрдлреЗрд╕ рд╡реНрдпреВ рдХрд╛ рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рдХреИрдорд░реЗ рдХреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдкрд░ рдЫрд╡рд┐ рдХреЗ рд╡рд┐рд░реВрдкрдг рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рд┐рдд рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╡рд┐рдВрдбреЛ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред



рдореИрдВ рд▓рдЧрднрдЧ рднреВрд▓ рдЧрдпрд╛ рдерд╛ред рдЕрдиреБрдорддрд┐ рдХреЛ рдкреНрд░рдХрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

 <uses-permission android:name="android.permission.CAMERA" />
      
      







MainScreen.java

 package test.camera; import android.app.Activity; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.os.Bundle; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.view.View; import android.hardware.Camera; import android.hardware.Camera.Size; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class MainScreen extends Activity implements SurfaceHolder.Callback, View.OnClickListener, Camera.PictureCallback, Camera.PreviewCallback, Camera.AutoFocusCallback { private Camera camera; private SurfaceHolder surfaceHolder; private SurfaceView preview; private Button shotBtn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //  ,       setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //  ,     getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //    requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); //  SurfaceView   SurfaceView01 preview = (SurfaceView) findViewById(R.id.SurfaceView01); surfaceHolder = preview.getHolder(); surfaceHolder.addCallback(this); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); //    Button01 shotBtn = (Button) findViewById(R.id.Button01); shotBtn.setText("Shot"); shotBtn.setOnClickListener(this); } @Override protected void onResume() { super.onResume(); camera = Camera.open(); } @Override protected void onPause() { super.onPause(); if (camera != null) { camera.setPreviewCallback(null); camera.stopPreview(); camera.release(); camera = null; } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceCreated(SurfaceHolder holder) { try { camera.setPreviewDisplay(holder); camera.setPreviewCallback(this); } catch (IOException e) { e.printStackTrace(); } Size previewSize = camera.getParameters().getPreviewSize(); float aspect = (float) previewSize.width / previewSize.height; int previewSurfaceWidth = preview.getWidth(); int previewSurfaceHeight = preview.getHeight(); LayoutParams lp = preview.getLayoutParams(); //     preview,     if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) { //   camera.setDisplayOrientation(90); lp.height = previewSurfaceHeight; lp.width = (int) (previewSurfaceHeight / aspect); ; } else { //  camera.setDisplayOrientation(0); lp.width = previewSurfaceWidth; lp.height = (int) (previewSurfaceWidth / aspect); } preview.setLayoutParams(lp); camera.startPreview(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { } @Override public void onClick(View v) { if (v == shotBtn) { //      //     //camera.takePicture(null, null, null, this); camera.autoFocus(this); } } @Override public void onPictureTaken(byte[] paramArrayOfByte, Camera paramCamera) { //   jpg   /sdcard/CameraExample/ //   - System.currentTimeMillis() try { File saveDir = new File("/sdcard/CameraExample/"); if (!saveDir.exists()) { saveDir.mkdirs(); } FileOutputStream os = new FileOutputStream(String.format("/sdcard/CameraExample/%d.jpg", System.currentTimeMillis())); os.write(paramArrayOfByte); os.close(); } catch (Exception e) { } //  ,   ,   .    paramCamera.startPreview(); } @Override public void onAutoFocus(boolean paramBoolean, Camera paramCamera) { if (paramBoolean) { //   ,   paramCamera.takePicture(null, null, null, this); } } @Override public void onPreviewFrame(byte[] paramArrayOfByte, Camera paramCamera) { //    ,   preview } }
      
      







main.xml

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout android:id="@+id/FrameLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <SurfaceView android:id="@+id/SurfaceView01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </SurfaceView> <Button android:text="@+id/Button01" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </FrameLayout>
      
      







AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="test.camera" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> <activity android:name=".MainScreen" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> </manifest>
      
      







рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрд▓рдЬреА рдлреЛрди рдСрдкреНрдЯрд┐рдорд╕ рд╡рди P500 рдкрд░ рдбрд┐рдмрдЧ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рд▓рд┐рдЦрддреЗ рд╕рдордп, рд╕реВрдЪрдирд╛ рдХреЗ рдирд┐рдореНрди рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:



  1. developer.android.com/reference/android/hardware/Camera.html
  2. рд╢рд╡рди рд╡рди рд╣рд░ред рдкреНрд░реЛ рдПрдВрдбреНрд░реЙрдЗрдб рдореАрдбрд┐рдпрд╛: рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдФрд░ рдЯреИрдмрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХреНрд╕, рд╕рдВрдЧреАрдд, рд╡реАрдбрд┐рдпреЛ рдФрд░ рд░рд┐рдЪ рдореАрдбрд┐рдпрд╛ рдРрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ред рдПрдкреНрд░реЗрд╕ 2009ред
  3. developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html




рдЖрдк рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд┐рдВрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдпрд╣рд╛рдБ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ zalil.ru/30377379



All Articles