2012-09-30 11 views
10

Ad esempio:Come inizializzare una nuova Camera.Size in Android

int width = 720; 
int height = 1280; 

Voglio creare un Camera.Size.

Camera.Size size = new Camera.Size(width,height); 

Ma ha qualche errore.

No enclosing instance of type Camera is accessible. Must qualify the allocation with an enclosing instance of type Camera (e.g. x.new A() where x is an instance of Camera). 

risposta

9

So che avete pubblicato la tua domanda molto tempo fa ma ho qualche spiegazione su questo errore. Come puoi vedere here la classe Size è dichiarata pubblica (ma non statica) nella classe Camera. Puoi trovare alcune informazioni su questa architettura here.

Quindi, per creare un nuovo oggetto Camera.Size, è necessario iniziare creando un oggetto Camera.

Camera camera = Camera.open(); 

quindi è possibile creare l'oggetto Camera.Size:

Camera.Size size = camera.new Camera.Size(width, height); 

Non sono sicuro che si vuole veramente utilizzare questo modo per fare questo, ma questa è la spiegazione circa il vostro errore.

16

In realtà, è necessaria una sintassi leggermente diversa:

Camera camera = Camera.open(); 
Camera.Size size = camera.new Size(width, height); 
+0

Questo ha funzionato per me. Molte grazie! Non sapevo che avrei dovuto usare camera.new. Eccezionale! – sunlover3

Problemi correlati