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

Guida J2ME - 58: scattare una foto: getSnapshot

Guida J2ME, corso base java microedition

 

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.

 

Pagina di Francesco Milanese (redbaron85) su Facebook   Pagina di Francesco Milanese (redbaron85) su Google Plus   Profilo di Francesco Milanese (redbaron85) su LinkedIn   Pagina di Francesco Milanese (redbaron85) su Twitter   Canale Youtube di Francesco Milanese (redbaron85ct)

Vai all'inizio della pagina