NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 58: Scattare una foto.

 

L'evento di cattura di un'immagine da fotocamera può essere lanciato, ad esempio, alla pressione di un tasto del dispositivo, o in base ad un altro evento, a seconda delle esigenze; ad ogni modo, sarà necessario scrivere le seguenti righe di codice:

ClasseDiCattura cattura = new ClasseDiCattura();

cattura.start();

(ovviamente, potete dare il nome che preferite alla classe adibita alla cattura dell'immagine, non per forza 'ClasseDiCattura' ! Il metodo start() invece dovrà avere sempre questo nome, e vedremo presto perchè.).

 

 

Perchè è necessario definire una nuova classe per catturare l'immagine ?

Per non bloccare a lungo la MIDlet durante l'acquisizione della foto possiamo utilizzare un oggetto creato con una classe che estenda Thread, in modo da effettuare la cattura 'in parallelo' con altre operazioni della MIDlet.

E' per questo motivo che prima è stato utilizzato un metodo di nome 'start()': è questo il metodo da invocare per lanciare il metodo run() di un Thread.

Ecco il codice della nostra classe ClasseDiCattura:

class ClasseDiCattura extends Thread
{
public void run()
{
byte[] fotografia;
try
{
fotografia = vc.getSnapshot(null);
Image image = Image.createImage(fotografia, 0, fotografia.length);
}
catch(MediaException e)
{
e.printStackTrace();
}

}
}

 

 

 

Come avrete capito leggendo il codice, le foto scattate vengono memorizzate di default sotto forma di array di byte (byte[]), ma possiamo convertirle immediatamente in oggetti di tipo Image; nei prossimi due capitoli vedremo come visualizzare sul display la foto appena scattata e come salvarla sul dispositivo.

 

 
Vai all'inizio della pagina