2012-09-29 14 views
6

Sto provando a caricare un'immagine png come estraibile dalla scheda sd del mio dispositivo. Io uso la seguente funzione, ma non funziona:Caricamento estraibile dalla scheda SD

public Drawable getDrawable() 
{ 
return new BitmapDrawable(imagePath); 
} 

il percorso dell'immagine è: mnt/sdcard/MyFolder/immagine.png

Arresto anomalo dell'applicazione quando si tenta di chiamare tale metodo, come dovrebbe Carico la mia immagine PNG che si trova nella mia sdcard e la getto in un oggetto Drawable?

+1

sguardo al 'decodeFile' http://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeFile(java.lang.String) – Doomsknight

+0

@ Doomsknight Puoi fornire un esempio per favore? Stavo cercando ora BitmapFromFile ma non sono riuscito a trovare alcuna informazione a riguardo. – idish

+0

@Doomsknight Vedo, quindi dovrò lanciare successivamente la bitmap su un oggetto drawable? – idish

risposta

13

Esiste effettivamente un costruttore BitmapDrawable direttamente dal percorso del file. Il metodo che stai utilizzando è privato. Prova:

Drawable myDrawable = new BitmapDrawable(getResources(), pathName); 

Se questo non funziona, provare a ottenere una bitmap e la creazione di un disegnabile da esso:

La bitmap può essere creato con decodeFile

è possibile utilizzarlo in questo modo:

Bitmap myBitmap = BitmapFactory.decodeFile(pathName); 

quindi è possibile utilizzare l'immagine bitmap per disegnare ecc

per convertire bitmap da utilizzare drawable

Drawable myDrawable = new BitmapDrawable(getResources(), myBitmap); 

Date un'occhiata Here (Bitmaps) e Here (Bitmap Drawables) per maggiori informazioni.

+0

Il primo pezzo di codice dovrebbe essere = new BitmapDrawable() poiché è un costruttore. –

+0

@JohnJSmith modificato. :) – Doomsknight

0

sto semplice piace che

public Drawable getDrawableFromPath(String filePath) { 
    Bitmap bitmap = BitmapFactory.decodeFile(filePath); 
    //Here you can make logic for decode bitmap for ignore oom error. 
    return new BitmapDrawable(bitmap); 
} 
Problemi correlati