2011-09-13 10 views
5

Estoy usando el Blackberry JDE Plugin v1.3 para Eclipse y estoy intentando este código para crear un BitmapField y he siempre hecho de esta manera:EncodedImage.getEncodedImageResource no se puede cargar la imagen con el mismo nombre diferente subcarpeta en Eclipse (Blackberry plugin)

this.bitmap = EncodedImage.getEncodedImageResource("ico_01.png"); 
this.bitmap = this.bitmap.scaleImage32(
        this.conf.getWidthScale(), this.conf.getHeightScale()); 
this.imagenLoad = new BitmapField(this.bitmap.getBitmap(), this.style); 

funciona bien, sin errores, pero ahora tengo este conjunto de imágenes con el mismo nombre pero en diferentes subcarpetas de esta manera:

enter image description here

hice es más pequeño de lo que realmente es para expl razones anatory. No me gustaría cambiar el nombre de los archivos para que sean todos diferentes. Me gustaría saber cómo acceder a las diferentes subcarpetas. "res/img/on/ico_01.jpg", "img/on/ico_01.jpg", "on/ico_01.jpg" son algunos ejemplos que probé y fallaron.

Respuesta

2

Parece que EncodedImage.getEncodedImageResource(filename) recuperará la primera instancia de filenameindependientemente de dónde se encuentra en el árbol de directorios de recursos.

Esto no es muy útil si tiene las imágenes con el mismo nombre de archivo en directorios diferentes (como tiene).

La solución que he utilizado es crear mi propio método que puede devolver una imagen basada en una ruta y un nombre de archivo.

public static Bitmap getBitmapFromResource(String resourceFilename){ 

    Bitmap imageBitmap = null; 

    //get the image as a byte stream 
    InputStream imageStream = getInstance().getClass().getResourceAsStream(resourceFilename); 
    //load it into memory 
    byte imageBytes[]; 
    try { 

     imageBytes = IOUtilities.streamToBytes(imageStream); 
     //create the bitmap 
     imageBitmap = Bitmap.createBitmapFromBytes(imageBytes, 0, imageBytes.length, 1); 

    } catch (IOException e) { 
     Logger.log("Error loading: "+resourceFilename+". "+e.getMessage()); 
    } 

    return imageBitmap; 
} 
Cuestiones relacionadas