Как получить доступ к изображению, сохраненному в Blackberry, с помощью Bitmap.getBitmapResource ()? - PullRequest
3 голосов
/ 27 октября 2009

Я хочу получить доступ к изображению, хранящемуся в 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);

ИЛИ

Я должен получить к нему доступ,

  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 ]

4 голосов
/ 27 октября 2009

Взгляните на Bitmap.getBitmapResource Справочник по API:

публичная статическая битовая карта getBitmapResource (имя строки)
Создает растровое изображение из предоставленного ресурса имени.
Этот метод ищет ресурс в файле cod, который запустил этот процесс.
Параметры:
name - Имя растрового ресурса.
Возвращает:
Новый растровый объект или null, если этот метод не может найти ваш именованный ресурс.
Выдает:
NullPointerException - Если параметр имени является нулем.
С:
JDE 3.6

публичная статическая битовая карта getBitmapResource (строковый модуль, строковое имя)
Создает растровое изображение из предоставленного именованного ресурса, найденного в модуле.
Параметры:
module - Имя модуля, содержащего растровый ресурс. Если не указано, используется имя> вызывающего модуля.
name - Имя растрового ресурса.
Возвращает:
Новый растровый объект или null, если этот метод не может найти ваш именованный ресурс.
Выдает:
NullPointerException - Если параметр имени является нулем.
С:
JDE 3.6

Этот метод используется для получения модулей кода ресурсов. Если вы включите какое-либо изображение в свой проект, вы сможете получить его с помощью этого метода.

И если вы хотите открыть какое-то изображение из файловой системы, вам придется использовать FileConnection, проверьте тип файла MIME, прочитайте его байты из потока и соответственно создайте EncodedImage.

3 голосов
/ 27 октября 2009

Bitmap.getBitmapResource () используется для загрузки ресурсов, которые хранятся в вашем файле COD или любом файле COD, на который опирается ваше приложение. Это не для загрузки файлов, которые хранятся на устройстве.

Растровое изображение JavaDocs

0 голосов
/ 27 октября 2009

На каком языке вы пишете? Вот как я это сделал в C ++ на 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 будет что-то вроде \\Storage Card\\test.bmp.

...