2011-09-13 6 views
5

Eclipse用Blackberry JDE Plugin v1.3を使用しています。このコードでBitmapFieldを作成しようとしています。EncodedImage.getEncodedImageResourceは、Eclipse(Blackberryプラグイン)の別のサブフォルダと同じ名前の画像を読み込めません。

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

私が作りましたそれは実際にはexplより小さい訴訟の理由。私はファイルの名前を変更したくないので、それらはすべて異なっています。異なるサブフォルダにアクセスする方法を知りたい。 "res/img/on/ico_01.jpg"、 "img/on/ico_01.jpg"、 "on/ico_01.jpg"は私が試して失敗した例です。

答えて

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; 
} 
関連する問題