问题
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.6public 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