How to access image stored in Blackberry using Bitmap.getBitmapResource()?

两盒软妹~` 提交于 2019-12-10 10:30:20

问题


I want to access an image stored in Blackberry, say at location "store/home/user/image.png" .

Now can i access this image as,

String filePath = "file:///store/home/user/image.png;
Bitmap image = Bitmap.getBitmapResource(filePath);
BitmapField bitmapField = new BitmapField(image, BitmapField.FOCUSABLE);

OR

I have to access it as,

  String filePath = "file:///store/home/user/image.png;
  FileConnection fconn = (FileConnection)Connector.open(filePath, Connector.READ); 
  if (fconn.exists()) 
  {
                ........
                ........                           

     input.close();
     fconn.close();                            

  }

I am able to access the image using the second way but I want to know that can I access it using "Bitmap.getBitmapResource(filePath)" ?


回答1:


Take a look at Bitmap.getBitmapResource API reference:

public static Bitmap getBitmapResource(String name)
Creates a bitmap from provided name resource.
This method looks for the resource in the cod file that launched this process.
Parameters:
name - Name of the bitmap resource.
Returns:
New Bitmap object, or null if this method couldn't find your named resource.
Throws:
NullPointerException - If the name parameter is null.
Since:
JDE 3.6

public static Bitmap getBitmapResource(String module, String name)
Creates a bitmap from provided named resource found in module.
Parameters:
module - Name of the module containing the bitmap resource. If not specified, the name of >the calling module is used.
name - Name of the bitmap resource.
Returns:
New Bitmap object, or null if this method couldn't find your named resource.
Throws:
NullPointerException - If the name parameter is null.
Since:
JDE 3.6

This method is used to retrieve resources code modules. If you include some image into your project you will be able to retrieve it with this method.

And if you want to open some image from file system, you will have to use FileConnection, check file MIME type, read it's bytes from stream and create EncodedImage accordingly.




回答2:


Bitmap.getBitmapResource() is used for loading resources that are stored within your COD file or any COD file your application relies on. It is not for loading files that are stored on the device.

Bitmap JavaDocs




回答3:


What language are you writing in? Here's how I did it in C++ on Windows Mobile:

Log::GetSingleton() << "Loading sprite: " << wchar_path << "\n";

// Special magic WM bitmap loading function that isn't in the examples
// because Microsoft wants you to use resource files
HBITMAP bitmap = SHLoadDIBitmap(wchar_path);

if (!bitmap) 
{
    Error::LastError();
    Error::Explain("Failed to load bitmap.");
    return NULL;
}

HDC dc_image = CreateCompatibleDC(NULL);
if (!dc_image) 
{
    Error::LastError();
    Error::Explain("Failed to create memory device context.");
    return NULL;
}
HBITMAP other_bitmap = (HBITMAP)SelectObject(dc_image, bitmap);

wchar_path would be something like \\Storage Card\\test.bmp.



来源:https://stackoverflow.com/questions/1630142/how-to-access-image-stored-in-blackberry-using-bitmap-getbitmapresource

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!