Мне нужно использовать камеру телефона для приложения, но я новый программист, и я не мог найти сайт в любом месте с полным ответом.Принимать несколько фотографий с помощью камеры приложения на программирование Android
Это моя основная активность:
общественный класс MainActivity расширяет активность {
private Camera cameraObject;
private ShowCamera showCamera;
public static Camera isCameraAvailiable(){
Camera object = null;
try {
object = Camera.open(); // attempt to get a Camera instance
}
catch (Exception e){
// Camera is not available (in use or does not exist)
}
return object; // returns null if camera is unavailable
}
private PictureCallback capturedIt = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data .length);
if(bitmap==null){
Toast.makeText(getApplicationContext(), "not taken", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(), "taken", Toast.LENGTH_SHORT).show();
}
cameraObject.release();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cameraObject = isCameraAvailiable();
showCamera = new ShowCamera(this, cameraObject);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.addView(showCamera);
}
public void snapIt(View view){
cameraObject.takePicture(null, null, capturedIt);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Вы можете запустить цикл, который вызывает 'cameraObject.takePicture (null, null, captureIt);' несколько раз после определенного количества времени. –
, вы также можете использовать обработчик касания для объекта 'showCamera', который внутренне вызывает ваш метод' snapIt'. –
не могли бы вы дать более подробный ответ, если у меня есть еще одна кнопка, которая есть, если я хочу взять новое изображение, и он начнет весь процесс. –