EncodedImage.getEncodedImageResource无法在Eclipse中加载具有相同名称的不同子文件夹的图像(Blackberry插件)

ike*_*txu 5 eclipse plugins blackberry image

我正在使用Blackberry JDE Plugin v1.3 for 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);
Run Code Online (Sandbox Code Playgroud)

它工作正常,没有错误,但现在我有这组图像具有相同的名称,但在不同的子文件夹中,如下所示:

在此输入图像描述

出于解释原因,我把它做得比实际要小.我不想重命名文件,所以它们都是不同的.我想知道如何访问不同的子文件夹."res/img/on/ico_01.jpg","img/on/ico_01.jpg","on/ico_01.jpg"是我尝试过但失败的一些例子.

don*_*ner 2

看来,无论它位于资源目​​录树中的哪个位置,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;
}
Run Code Online (Sandbox Code Playgroud)