Bitmap.getBitmapResource()を使用してBlackberryに保存されている画像にアクセスする方法は?

StackOverflow https://stackoverflow.com/questions/1630142

  •  06-07-2019
  •  | 
  •  

質問

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();                            

  }

2番目の方法を使用して画像にアクセスできますが、" Bitmap.getBitmapResource(filePath)"を使用してアクセスできることを知りたいです。

役に立ちましたか?

解決

Bitmap.getBitmapResource APIリファレンス:

  

public static Bitmap getBitmapResource(String name)
  指定された名前リソースからビットマップを作成します。
  このメソッドは、このプロセスを起動したcodファイルでリソースを探します。
  パラメータ:
  name-ビットマップリソースの名前。
  返品:
  新しいビットマップオブジェクト、またはこのメソッドが名前付きリソースを見つけられなかった場合はnull。
  スロー:
  NullPointerException-nameパラメーターがnullの場合。
  以来:
  JDE 3.6

     

public static Bitmap getBitmapResource(String module、String name)
  モジュールで見つかった指定された名前付きリソースからビットマップを作成します。
  パラメータ:
  module-ビットマップリソースを含むモジュールの名前。指定しない場合、>呼び出しモジュールの名前が使用されます。
  name-ビットマップリソースの名前。
  返品:
  新しいビットマップオブジェクト、またはこのメソッドが名前付きリソースを見つけられなかった場合はnull。
  スロー:
  NullPointerException-nameパラメーターがnullの場合。
  以来:
  JDE 3.6

このメソッドは、リソースコードモジュールを取得するために使用されます。プロジェクトに画像を含めると、このメソッドで取得できます。

ファイルシステムから画像を開きたい場合は、FileConnectionを使用する必要があります。 ファイルのMIMEタイプを確認し、ストリームからバイトを読み取り、それに応じてEncodedImageを作成します。

他のヒント

Bitmap.getBitmapResource()は、CODファイルまたはアプリケーションが依存するCODファイル内に保存されているリソースをロードするために使用されます。デバイスに保存されているファイルをロードするためではありません。

ビットマップJavaDocs

何語で書いていますか? 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 のようになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top