我想访问存储在Blackberry中的图像,比如位置“store / home / user / image.png”。
现在我可以访问此图像,
String filePath = "file:///store/home/user/image.png;
Bitmap image = Bitmap.getBitmapResource(filePath);
BitmapField bitmapField = new BitmapField(image, BitmapField.FOCUSABLE);
OR
我必须以“
”的形式访问它 String filePath = "file:///store/home/user/image.png;
FileConnection fconn = (FileConnection)Connector.open(filePath, Connector.READ);
if (fconn.exists())
{
........
........
input.close();
fconn.close();
}
我可以使用第二种方式访问图像,但我想知道我可以使用“Bitmap.getBitmapResource(filePath)”访问它吗?
答案 0 :(得分:4)
查看Bitmap.getBitmapResource API参考:
public static Bitmap getBitmapResource(String name)
从提供的名称资源创建位图 此方法在启动此过程的cod文件中查找资源 的参数:强>
name - 位图资源的名称 的返回:强>
新的Bitmap对象,如果此方法找不到您的命名资源,则返回null 的抛出:强>
NullPointerException - 如果name参数为null 的时间:强>
JDE 3.6public static Bitmap getBitmapResource(String module,String name)
从模块中找到的提供的命名资源创建位图 的参数:强>
module - 包含位图资源的模块的名称。如果未指定,则使用>调用模块的名称 name - 位图资源的名称 的返回:强>
新的Bitmap对象,如果此方法找不到您的命名资源,则返回null 的抛出:强>
NullPointerException - 如果name参数为null 的时间:强>
JDE 3.6
此方法用于检索资源代码模块。如果在项目中包含一些图像,则可以使用此方法检索它。
如果你想从文件系统中打开一些图像,你将不得不使用FileConnection, 检查文件MIME类型,从流中读取它的字节并相应地创建EncodedImage。
答案 1 :(得分:3)
Bitmap.getBitmapResource()用于加载存储在COD文件或应用程序所依赖的任何COD文件中的资源。它不适用于加载存储在设备上的文件。
答案 2 :(得分:-2)
你在写什么语言?以下是我在Windows Mobile上用C ++实现的方法:
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
类似于\\Storage Card\\test.bmp
。