Caricamento Bitmap da SD

voldemort

Utente Attivo
26 Mar 2009
171
5
0
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ì:

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);
    }
La parte che mi da NullPointerException è questa:
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
 

Discussioni simili