ciao. Spero di trovare un aiuto perché non so dove sbattere la testa. Vado subito al dunque. sono alla ricerca di caricare un immagine png dall'SD, ma ottengo una Bitmap nulla.
I passaggi in breve.
1) Catturo l'immagine della Google Map e la salvo nel telefono ad un indirizzo specifico x dentro l'SD
2) Voglio modificare quell'immagine per scriverci delle informazioni sopra. Allora passo l'url ad un metodo che tenta di creare la Bitmap relativa al percorso passato
e fa le relative modifiche. Infine ritorna la Bitmap modificata.
3) Creo un intent per condividere l'immagine così creata
NullPointerException al passaggio 2, relativo al caricamento della Bitmap.
La cattura della mappa ed il suo salvataggio avvengono così:
La parte che mi da NullPointerException è questa:
Non so più come fare. Ho verificato che l'immagine viene catturata bene, il file esiste, il path esiste... boh
I passaggi in breve.
1) Catturo l'immagine della Google Map e la salvo nel telefono ad un indirizzo specifico x dentro l'SD
2) Voglio modificare quell'immagine per scriverci delle informazioni sopra. Allora passo l'url ad un metodo che tenta di creare la Bitmap relativa al percorso passato
e fa le relative modifiche. Infine ritorna la Bitmap modificata.
3) Creo un intent per condividere l'immagine così creata
NullPointerException al passaggio 2, relativo al caricamento della Bitmap.
La cattura della mappa ed il suo salvataggio avvengono così:
Codice:
public void CaptureMapScreen() {
GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() {
Bitmap bitmap;
@Override
// metodo chiamato quando lo snapshot è pronto
public void onSnapshotReady(Bitmap snapshot) {
bitmap = snapshot;
try {
// salvo il file nel telefono
String path = Environment.getExternalStorageDirectory().getPath() + "/MyMapScreen" + ".png";
FileOutputStream out = new FileOutputStream(path);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
};
mGoogleMap.snapshot(callback);
}
Codice:
private Bitmap imageEditing(String storagePath) {
// ottengo la densità dello schermo
Resources resources = getResources();
float scale = resources.getDisplayMetrics().density;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
// bitmap del file nel telefono
Bitmap bitmap = BitmapFactory.decodeFile(storagePath + "/MyMapScreen.png", options); --> NULLA!
// bitmap più alta di 200 pixel
Bitmap highterBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight() + 250, bitmap.getConfig()); // e qui mi segna NullPointerException
...
Non so più come fare. Ho verificato che l'immagine viene catturata bene, il file esiste, il path esiste... boh