Como obter um objeto Bitmap de um Uri (se eu conseguir armazená-lo
/data/data/MYFOLDER/myimage.png
ou file///data/data/MYFOLDER/myimage.png
) para usá-lo no meu aplicativo?
Alguém tem uma idéia de como fazer isso?
android
uri
android-image
android-bitmap
ilredelweb
fonte
fonte
Respostas:
. . IMPORTANTE: Consulte a resposta de @Mark Ingram abaixo e @pjv para obter uma solução melhor. . .
Você pode tentar o seguinte:
Mas lembre-se, esse método só deve ser chamado de dentro de um thread (não da interface do usuário). Eu sou uma AsyncTask.
fonte
Aqui está a maneira correta de fazer isso:
Se você precisar carregar imagens muito grandes, o código a seguir será carregado em blocos (evitando grandes alocações de memória):
Veja a resposta aqui
fonte
Aqui está a maneira correta de fazer isso, acompanhando também o uso da memória:
A chamada getBitmap () da postagem de Mark Ingram também chama decodeStream (), para que você não perca nenhuma funcionalidade.
Referências:
Android: obtenha miniatura da imagem no cartão SD, considerando o Uri da imagem original
Manipulando Bitmaps Grandes
fonte
getPowerOfTwoForSampleRatio()
pode ser ignorada. Veja: developer.android.com/reference/android/graphics/…e sim o caminho deve estar em um formato como este
file:///mnt/sdcard/filename.jpg
fonte
Esta é a solução mais fácil:
fonte
fonte
Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri);
Parece que
MediaStore.Images.Media.getBitmap
foi preterido emAPI 29
. A maneira recomendada é usar oImageDecoder.createSource
que foi adicionadoAPI 28
.Aqui está como obter o bitmap:
fonte
Você pode recuperar o bitmap da uri assim
fonte
fonte
Use o método startActivityForResult como abaixo
E você pode obter resultados como este:
fonte
Eu tentei de várias maneiras. este trabalho para mim perfeitamente.
Se você escolher pictrue na Galeria. Você precisa ser ware de obter
Uri
a partir deintent.clipdata
ouintent.data
, porque um deles pode ser nulo na versão diferente.fonte
você pode fazer esta estrutura:
com isso, você pode facilmente converter um uri em bitmap. espero ajudar você.
fonte
Inserção da
getBitmap
qual é privada agora eu uso a seguinte abordagem no Kotlinfonte
fonte
(KOTLIN) Então, em 7 de abril de 2020, nenhuma das opções mencionadas acima funcionou, mas eis o que funcionou para mim:
Se você deseja armazenar o bitmap em um val e definir um imageView com ele, use o seguinte:
val bitmap = BitmapFactory.decodeFile(currentPhotoPath).also { bitmap -> imageView.setImageBitmap(bitmap) }
Se você deseja apenas definir o bitmap como e imageView, use o seguinte:
BitmapFactory.decodeFile(currentPhotoPath).also { bitmap -> imageView.setImageBitmap(bitmap) }
fonte
Método completo para obter uri de imagem da galeria para celular.
fonte