2012-06-13 8 views
5

Sto usando il codice seguente per aprire la fotocamera. È possibile impostare la risoluzione della fotocamera su un valore alto programmaticamente?Modifica programmata della risoluzione della fotocamera in Android

private void openDefaultCameraApp() { 
    Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(i, CAPTURE_PHOTO_CONSTANT); 
} 

risposta

2

È necessario aggiungere un MediaStore.EXTRA_OUTPUT all'intento. Nell'extra, devi specificare un Uri per l'immagine da salvare. Ciò salverà l'immagine a piena risoluzione, altrimenti scatterà solo una piccola immagine.

Consultare la documentazione Android: ACTION_IMAGE_CAPTURE

standard azione intento che possono essere inviati ad avere l'applicazione della fotocamera cattura un'immagine e restituirlo. Il chiamante può passare un extra EXTRA_OUTPUT per controllare dove verrà scritta questa immagine. Se EXTRA_OUTPUT non è presente, un'immagine di dimensioni ridotte viene restituita come oggetto Bitmap nel campo extra. Questo è utile per le applicazioni che richiedono solo una piccola immagine. Se è presente il EXTRA_OUTPUT, allora l'immagine ingrandita verrà scritto il valore Uri di EXTRA_OUTPUT

1

È possibile utilizzare il metodo this per ottenere tutte le dimensioni supportate delle immagini.

public List<Camera.Size> getSupportedPictureSizes() 

Si otterrà una List di supportati formati immagine. E poi da questo, puoi impostare qualsiasi dimensione tu voglia usando il metodo this.

public void setPictureSize (int width, int height) 
+9

Sta usando il metodo Intent, non un oggetto Camera. Si noti che il metodo è chiamato openDefaultCameraApp() –

2

Credo che la sua non è possibile vedere il link qui sotto:

Open Android Camera in lower resolution with ACTION_IMAGE_CAPTURE

È necessario impostare manualmente il risoluzione dalla schermata di anteprima della fotocamera.

Se si ottiene uno scatto rapido anche se la risoluzione della fotocamera è impostata su alto, utilizzare l'approccio di Zed Scio.