Come accedere all'immagine memorizzata in Blackberry usando Bitmap.getBitmapResource ()?
-
06-07-2019 - |
Domanda
Voglio accedere a un'immagine memorizzata in Blackberry, ad esempio nella posizione " store / home / user / image.png " .
Ora posso accedere a questa immagine come,
String filePath = "file:///store/home/user/image.png;
Bitmap image = Bitmap.getBitmapResource(filePath);
BitmapField bitmapField = new BitmapField(image, BitmapField.FOCUSABLE);
OPPURE
Devo accedervi come,
String filePath = "file:///store/home/user/image.png;
FileConnection fconn = (FileConnection)Connector.open(filePath, Connector.READ);
if (fconn.exists())
{
........
........
input.close();
fconn.close();
}
Sono in grado di accedere all'immagine usando il secondo modo, ma voglio sapere che posso accedervi usando " Bitmap.getBitmapResource (filePath) " ?
Soluzione
Dai un'occhiata a Bitmap.getBitmapResource Riferimento API:
getBitmapResource (nome stringa) pubblico Bitmap statico
Crea una bitmap dalla risorsa del nome fornita.
Questo metodo cerca la risorsa nel file cod che ha avviato questo processo.
Parametri:
name - Nome della risorsa bitmap.
Returns:
Nuovo oggetto Bitmap o null se questo metodo non è riuscito a trovare la risorsa denominata.
Produce:
NullPointerException - Se il parametro name è null.
Dal:
JDE 3.6getBitmapResource Bitmap pubblica statica (modulo String, nome String)
Crea una bitmap dalla risorsa denominata fornita trovata nel modulo.
Parametri:
module - Nome del modulo contenente la risorsa bitmap. Se non specificato, viene utilizzato il nome di > il modulo chiamante.
name - Nome della risorsa bitmap.
Returns:
Nuovo oggetto Bitmap o null se questo metodo non è riuscito a trovare la risorsa denominata.
Produce:
NullPointerException - Se il parametro name è null.
Dal:
JDE 3.6
Questo metodo viene utilizzato per recuperare i moduli di codice delle risorse. Se includi qualche immagine nel tuo progetto, sarai in grado di recuperarla con questo metodo.
E se vuoi aprire qualche immagine dal file system, dovrai usare FileConnection, controlla il tipo MIME del file, leggi i byte dallo stream e crea EncodedImage di conseguenza.
Altri suggerimenti
Bitmap.getBitmapResource () viene utilizzato per caricare risorse archiviate nel file COD o in qualsiasi file COD su cui si basa l'applicazione. Non è per il caricamento di file archiviati sul dispositivo.
In che lingua stai scrivendo? Ecco come l'ho fatto in C ++ su 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
sarebbe qualcosa come \\ Storage Card \\ test.bmp
.