Como imagem de acesso armazenadas no Blackberry para usar Bitmap.getBitmapResource ()?
-
06-07-2019 - |
Pergunta
Eu quero acessar uma imagem armazenada no Blackberry, dizem no local "store / home / user / image.png".
Agora eu posso acessar esta imagem como,
String filePath = "file:///store/home/user/image.png;
Bitmap image = Bitmap.getBitmapResource(filePath);
BitmapField bitmapField = new BitmapField(image, BitmapField.FOCUSABLE);
ou
Eu tenho que acessá-lo como,
String filePath = "file:///store/home/user/image.png;
FileConnection fconn = (FileConnection)Connector.open(filePath, Connector.READ);
if (fconn.exists())
{
........
........
input.close();
fconn.close();
}
Eu sou capaz de acessar a imagem usando a segunda maneira, mas eu quero saber que eu posso acessá-lo usando "Bitmap.getBitmapResource (filePath)"?
Solução
Dê uma olhada em Bitmap.getBitmapResource referência API:
public static Bitmap getBitmapResource (String name)
Cria um bitmap de recurso de nome fornecido.
Este método procura o recurso no arquivo de bacalhau que lançou este processo.
Parâmetros:
Nome - Nome do recurso bitmap
. Returns:
New Bitmap objeto, ou null se este método não poderia encontrar o seu recurso nomeado.
Lança:
NullPointerException - Se o parâmetro nome é nula
. Desde:
JDE 3.6public static Bitmap getBitmapResource (módulo String, String nome)
Cria um bitmap a partir fornecidos recurso nomeado encontrado no módulo.
Parâmetros:
Módulo - Nome do módulo que contém o recurso bitmap. Se não for especificado, o nome> módulo chamando é usado.
Nome - Nome do recurso bitmap
. Returns:
New Bitmap objeto, ou null se este método não poderia encontrar o seu recurso nomeado.
Lança:
NullPointerException - Se o parâmetro nome é nula
. Desde:
JDE 3.6
Este método é usado para recuperar recursos módulos de código. Se você incluir alguma imagem em seu projeto, você será capaz de recuperá-lo com este método.
E se você deseja abrir alguma imagem do sistema de arquivos, você terá que usar FileConnection, verificar o tipo de MIME do arquivo, lê-lo de bytes do fluxo e criar EncodedImage em conformidade.
Outras dicas
Bitmap.getBitmapResource () é usado para carregar recursos que são armazenados dentro de seu arquivo COD ou qualquer arquivo COD sua aplicação depende. Não é para o carregamento de arquivos que estão armazenados no dispositivo.
Que linguagem você está escrevendo em? Aqui está como eu fiz isso em C ++ em 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
seria algo como \\Storage Card\\test.bmp
.