2010-08-17 12 views
9

Al momento sto tentando di impostare la mia fotocamera sul mio telefono Motorola Droid per acquisire un'immagine che corrisponda alle dimensioni del mio schermo (854 x 480 pixel), e sto tentando di ottenere tramite il parametri per la fotocamera in quanto tale:Impostazione della dimensione dell'immagine della videocamera in Android

Camera.Parameters parameters = this.mCamera.getParameters(); 
Log.i(TAG, "CAMERA SIZE: (" + this.mCameraView.getWidth() + ", " + this.mCameraView.getHeight() + ")"); 
parameters.setPictureSize(this.mCameraView.getWidth(), this.mCameraView.getHeight()); 
this.mCamera.setParameters(parameters); 
this.mCamera.takePicture(null, null, this); 

ho la mia attività di implementare il metodo Camera.PictureCallback di onPictureTaken (escluse le chiamate di registro), in modo che quando il metodo viene chiamato takePicture si corre questo metodo:

@Override 
public void onPictureTaken(byte[] data, Camera camera) { 
    Bitmap image = BitmapFactory.decodeByteArray(data, 0, data.length); 
    //Size imageSize = camera.getParameters().getPictureSize(); 
    //image = Bitmap.createBitmap(image, 0, 0, imageSize.width, imageSize.height); 
    this.mCameraView.setBackgroundDrawable(new BitmapDrawable(image)); 
} 

Per qualche motivo, però, la mia fotocamera scatta foto nel 1280 x 960. Si tratta di una dimensione minima in cui la fotocamera può catturare un'immagine? Dalle chiamate ai registri posso vedere che i parametri della fotocamera sono ancora impostati per avere una dimensione dell'immagine di 854 x 480, ma l'immagine continua a uscire come 1280 x 960. Sto decodificando l'immagine in modo errato, sto impostando i parametri della fotocamera in modo errato o sono Sto facendo qualcos'altro di sbagliato?

Grazie in anticipo per qualsiasi aiuto tu possa dare!

Saluti, celestialorb.

risposta

20

Sì, esistono alcuni metodi per ottenere immagini supportate dalla fotocamera. Il metodo della classe di telecamere paramters che fornisce le dimensioni dell'immagine supportate dalla telecamera è getSupportedPictureSizes(); Utilizzando questo metodo, è possibile ottenere le dimensioni supportate dalla fotocamera. Il frammento di codice sarebbe simile a questa: -

Camera camera = Camera.open(); 
Parameters params = camera.getParameters(); 
List<Camera.Size> sizes = params.getSupportedPictureSizes(); 

Spero che questo vi aiuterà.

Grazie Nawab

+0

fotocamera è stato deprecato e sostituiti da Camera2 ma non ho trovato un metodo analogo nella nuova API – Price

2

Ho trovato la risposta, apparentemente la mia risoluzione dello schermo non è una dimensione supportata per la fotocamera. Non ero a conoscenza del fatto che la fotocamera fosse in grado di supportare determinate dimensioni mentre sto programmando con l'1.6 SDK.

C'è un modo per recuperare le dimensioni supportate della fotocamera per 1.5/1.6?

Problemi correlati