EncodedImage.getEncodedImageResource не может загрузить изображение с другой папкой с тем же именем в Eclipse (плагин Blackberry) - PullRequest
5 голосов
/ 14 сентября 2011

Я использую плагин Blackberry JDE v1.3 для Eclipse, и я пытаюсь этот код создать BitmapField, и я всегда делал это следующим образом:

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);

Он отлично работает сбез ошибок, но теперь у меня есть этот набор изображений с тем же именем, но в разных подпапках, как это:

enter image description here

Я сделал его меньше, чем на самом деле, для объяснения причин.Я не хотел бы переименовывать файлы, чтобы они все отличались.Я хотел бы знать, как получить доступ к различным подпапкам."res / img / on / ico_01.jpg", "img / on / ico_01.jpg", "on / ico_01.jpg" - это некоторые примеры, которые я попробовал и потерпел неудачу.

1 Ответ

2 голосов
/ 18 ноября 2011

Похоже, что EncodedImage.getEncodedImageResource(filename) будет извлекать первый экземпляр filename независимо от того, где он находится в дереве каталогов ресурсов .

Это не очень полезно, если у вас есть изображения с одинаковым именем файла в разных каталогах (как у вас).

Решение, которое я использовал, заключается в создании моего собственного метода, который может возвращатьизображение на основе пути и имени файла.

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...