如何使用Bitmap.getBitmapResource()访问存储在Blackberry中的图像?

时间:2009-10-27 11:18:55

标签: blackberry blackberry-storm

我想访问存储在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)”访问它吗?

3 个答案:

答案 0 :(得分:4)

查看Bitmap.getBitmapResource API参考:

  

public static Bitmap getBitmapResource(String name)
  从提供的名称资源创建位图   此方法在启动此过程的cod文件中查找资源   的参数:
  name - 位图资源的名称   的返回:
  新的Bitmap对象,如果此方法找不到您的命名资源,则返回null   的抛出:
  NullPointerException - 如果name参数为null   的时间:
  JDE 3.6

     

public 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文件中的资源。它不适用于加载存储在设备上的文件。

Bitmap JavaDocs

答案 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