Bitmap.getBitmapResource()を使用してBlackberryに保存されている画像にアクセスする方法は?
-
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.6public static Bitmap getBitmapResource(String module、String name)
モジュールで見つかった指定された名前付きリソースからビットマップを作成します。
パラメータ:
module-ビットマップリソースを含むモジュールの名前。指定しない場合、>呼び出しモジュールの名前が使用されます。
name-ビットマップリソースの名前。
返品:
新しいビットマップオブジェクト、またはこのメソッドが名前付きリソースを見つけられなかった場合はnull。
スロー:
NullPointerException-nameパラメーターがnullの場合。
以来:
JDE 3.6
このメソッドは、リソースコードモジュールを取得するために使用されます。プロジェクトに画像を含めると、このメソッドで取得できます。
ファイルシステムから画像を開きたい場合は、FileConnectionを使用する必要があります。 ファイルのMIMEタイプを確認し、ストリームからバイトを読み取り、それに応じてEncodedImageを作成します。
他のヒント
Bitmap.getBitmapResource()は、CODファイルまたはアプリケーションが依存するCODファイル内に保存されているリソースをロードするために使用されます。デバイスに保存されているファイルをロードするためではありません。
何語で書いていますか? 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
のようになります。