2015-04-17 1 views
0

У меня есть следующий код, и я пытаюсь получить изображение, которое я захватил, не сохраняя его во внешнем хранилище, прежде чем делать это. Есть ли способ получить изображение без его сохранения в любом месте?как получить захват без его хранения - Android

private static final int CAMERA_REQUEST = 1; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    imageView = (ImageView) findViewById(R.id.imageView1); 
    Button captureBtn = (Button) findViewById(R.id.button1); 

    captureBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(cameraIntent, CAMERA_REQUEST); 
     } 
    }); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 
     // get image 
    } 
} 

ответ

1

Есть ли способ, чтобы получить изображение без сохранения его в любом месте в первую очередь?

Сделайте снимок с помощью камеры самостоятельно, используя android.hardware.Camera или android.hardware.camera2.*.

Хотя в вашем коде, так как у вас нет EXTRA_OUTPUT, вы должны получить эскиз обратно в дополнительных статьях на Intent, доставленном до onActivityResult(). Полноразмерная фотография будет намного больше, чем ограничение 1 МБ IPC, поэтому приложение сторонней камеры не может отправить вам полноразмерную фотографию в ОЗУ.