Intent para visualizar pastas de imagens

1,044 views
Skip to first unread message

marcos

unread,
Sep 26, 2011, 4:11:05 PM9/26/11
to Android Brasil - Dev
Gostaria de abrir a galeria padrao do android em uma pasta especifica
com varias imagens, estou utlizando o seguinte codigo:

Intent intent = new Intent();
intent.setType("image/jpg");
intent.setAction(android.content.Intent.ACTION_VIEW);
// intent.setData(Uri.parse("content://media/external/images/media"));
intent.setData(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivity(intent);

esse código abre a galeria com todas as imagens no cartao de memoria,
tentei criar uma Uri de um diretorio especifico mas o aplicativo
trava, alguem sabe a maneira correta de fazer isso?

Bruno Albuquerque

unread,
Sep 26, 2011, 4:15:22 PM9/26/11
to androidb...@googlegroups.com
As imagens não são representadas pelos seus diretótios e, sim, por uma
entrada na base de dados. Não tem como usar a Galeria pra mostrar
imagens de um diretório específico.

-Bruno

marcos

unread,
Sep 26, 2011, 4:17:08 PM9/26/11
to Android Brasil - Dev
nem utilizando um cursor ou algo do tipo?

On Sep 26, 4:15 pm, Bruno Albuquerque <bruno.albuquer...@gmail.com>
wrote:

Bruno Albuquerque

unread,
Sep 26, 2011, 4:28:05 PM9/26/11
to androidb...@googlegroups.com
Não de forma eficiente. A localização das imagens no sistema de
arquivos é pra ser imaterial.

Obviamente você pode fazer seu próprio image viewer. Isso só é válido
pra Galeria e pras APIs de imagem.

-Bruno

marcos

unread,
Sep 26, 2011, 4:32:05 PM9/26/11
to Android Brasil - Dev
mas fazer o proprio image viewer nao seria estranho ja que o
operacional ja nao tem um?

o codigo equivalente a:
intent.setData(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
é este: intent.setData(Uri.parse("content://media/external/images/
media"));

nao existe outra forma de utilizar o Uri para um diretorio especifico?
ou filtrar esse Uri?

On Sep 26, 4:28 pm, Bruno Albuquerque <bruno.albuquer...@gmail.com>

Leonardo Martins Scaramel

unread,
Sep 26, 2011, 4:34:14 PM9/26/11
to androidb...@googlegroups.com
ignorantemente falando...
q q acontece se vc trocar o "content://media/external/images/
 media" pelo caminho q vc quer?
--
Leonardo Martins Scaramel
MSN: xx11_l...@hotmail.com
Fone Cel: 5475-9955

"Até Mais e Obrigado pelos Peixes"

marcos

unread,
Sep 26, 2011, 4:37:32 PM9/26/11
to Android Brasil - Dev
aparece a seguinte mensage: A aplicação XXX (processo xxx) parou
inesperadamente. Tente novamente

On Sep 26, 4:34 pm, Leonardo Martins Scaramel
> MSN: xx11_leona...@hotmail.com

Bruno Albuquerque

unread,
Sep 26, 2011, 5:28:23 PM9/26/11
to androidb...@googlegroups.com
Não. É exatamente o mesmo caso de você querer um Image Viewer que
faça. digamos, crop da imagem e você está tentando usar um que não faz
isso. A única solução factível (a não ser que você mude seus
requisitos) é criar outro/usar outro.

Uma possível alternativa pra que o que você quer funcione (em tese,
não testei) é criar um album e fazer com que suas imgens relevantes
sempre façam parte desse album. Mas pode ser overkill dependendo do
que exatamente você quer fazer.

-Bruno

Bruno Albuquerque

unread,
Sep 26, 2011, 5:29:15 PM9/26/11
to androidb...@googlegroups.com
Essa mensagem não diz absolutamente nada e apenas indica que deu pau
na sua aplicação. O que aparece no logcat (a exceção vai estar nele)?

-Bruno

marcos

unread,
Sep 27, 2011, 2:08:54 PM9/27/11
to Android Brasil - Dev
Isto é o que aparece no logcat

09-27 13:52:27.346: INFO/ActivityManager(2274): Starting activity:
Intent { act=android.intent.action.VIEW dat=content://sdcard/
myfolder }
09-27 13:52:27.346: DEBUG/AndroidRuntime(3634): Shutting down VM
09-27 13:52:27.346: WARN/dalvikvm(3634): threadid=3: thread exiting
with uncaught exception (group=0x4001dc20)
09-27 13:52:27.346: ERROR/AndroidRuntime(3634): Uncaught handler:
thread main exiting due to uncaught exception
09-27 13:52:27.386: ERROR/AndroidRuntime(3634):
android.content.ActivityNotFoundException: No Activity found to handle
Intent { act=android.intent.action.VIEW dat=content://sdcard/
myfolder }



On Sep 26, 5:29 pm, Bruno Albuquerque <bruno.albuquer...@gmail.com>

marcos

unread,
Sep 28, 2011, 2:53:33 PM9/28/11
to Android Brasil - Dev
parece que o android.provider.MediaStore.Images.Media
tem um método pra fazer um query nos images
http://developer.android.com/reference/android/provider/MediaStore.Images.Media.html

eu nao consigo entender muito bem a documentacao do android, alguem
pode me ajudar?

Bruno Albuquerque

unread,
Sep 28, 2011, 3:02:36 PM9/28/11
to androidb...@googlegroups.com
Mas isso não vai te ajudar. Você continua não podendo listar imagens
em um diretório específico. Mais uma vez, o conceito de diretórios
para mídia é imaterial no que diz respeito a API do Android.

-Bruno

marcos

unread,
Sep 28, 2011, 3:23:47 PM9/28/11
to Android Brasil - Dev
Bruno, se eu tivesse que fazer minha propria custom gallery pro meu
aplicativo, eu nao ia ter que dar um jeito de listar o diretorio,
filtras as imagens e carregar de uma por uma na custom gallery? Como o
android sincroniza as imagens com a galeria?
como meu aplicativo baixa imagens da internet, eu percebi que essas
imagens so aparecem na galeria após o usuario reiniciar o celular, e
ao retornar o celular, eu percebi que o android faz uma pesquisa de
midia (pelo menos é a notificacao que aparece no samsung galaxy s),
entao no botao que eu chamo a galeria, eu adicionei o seguinte codigo
antes do codigo apresentado no inicio da thread:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
pelo que analisei, ele refaz a busca de midia que eh feito
inicialmente após o boot do sistema... ainda continuo achando que é
possivel iniciar o app de galeria padrao do sistema android em uma
album especifico (considerado que um album é equivalente a uma pasta
com varias imagens) mas pela minha teimosia, posso estar
exponencialmente equivocado... e outra.. nao entendo quando voce
menciona que "o conceito de diretórios para midina é imaterial" na api
do android... o que isso significa?

On Sep 28, 3:02 pm, Bruno Albuquerque <bruno.albuquer...@gmail.com>
wrote:
> Mas isso não vai te ajudar. Você continua não podendo listar imagens
> em um diretório específico. Mais uma vez, o conceito de diretórios
> para mídia é imaterial no que diz respeito a API do Android.
>
> -Bruno
>
> Em 28 de setembro de 2011 15:53, marcos <mar...@dev-br.com> escreveu:
>
>
>
>
>
>
>
> > parece que o  android.provider.MediaStore.Images.Media
> > tem um método pra fazer um query nos images
> >http://developer.android.com/reference/android/provider/MediaStore.Im...

Bruno Albuquerque

unread,
Sep 28, 2011, 3:41:51 PM9/28/11
to androidb...@googlegroups.com
SIm, é possível abrir a galeria em um album espećifico. Mas um album
não é, necessariamente, equivalente a uma pasta.

E se quiser fazer algo assim manualmente,m você não vai usar as APIs
de media do Android. Você vai localizar o diretório e abri-lo
normalmente usando a API padrão do Java pra isso. Vai iterar pelo
conteudo do diretório e abrir as imagens manualmente da forma que
quiser.

E sempre que uma app qualquer salva uma imagem, é responsabilidade
dela indicar pro sistema pra indexar as mesmas (que é o que você está
fazendo). Isso é normal.

-Bruno

marcos

unread,
Sep 28, 2011, 3:52:57 PM9/28/11
to Android Brasil - Dev
"SIm, é possível abrir a galeria em um album espećifico. Mas um album
não é, necessariamente, equivalente a uma pasta. "

hum... quer dizer entao que uma pasta pode ser um album mas um album
nao precisa ser uma pasta, é isso?
como seria um exemplo para abrir a galeria em um album especifico?

On Sep 28, 3:41 pm, Bruno Albuquerque <bruno.albuquer...@gmail.com>

marcos

unread,
Sep 29, 2011, 2:39:03 PM9/29/11
to Android Brasil - Dev
nao encontrei nada concreto sobre abrir a galeria em um album
especifico, acho que estou pesquisando errado... como devo pesquisar?

marcos

unread,
Sep 29, 2011, 4:29:30 PM9/29/11
to Android Brasil - Dev
acho que essa questao da galeria, seria equivalente se fosse
necessario abrir o app padrao de file browser em algum diretorio
especifico, programar um file browser so pra isso seria tenso

marcos

unread,
Sep 30, 2011, 3:10:24 PM9/30/11
to Android Brasil - Dev
depois de muito sofrer, consegui resolver meu problema

solução: http://stackoverflow.com/questions/2238760/android-cooliris-gallery-developer-documentation

esse cara no StackOverflow queria fazer exatamente o que eu estou
fazendo e a resposta dada a ele supriu minhas necessidades tambem,
facil facil a implementacao da dica

Bruno Albuquerque, obrigado pela paciencia :D

Bruno Albuquerque

unread,
Sep 30, 2011, 3:24:30 PM9/30/11
to androidb...@googlegroups.com
Ah.. Se eu entendi aquilo direito, então a app em si permite abrir um
diretório? E o que acontece com ele depois? Vira um album?

-Bruno

marcos

unread,
Sep 30, 2011, 3:29:11 PM9/30/11
to Android Brasil - Dev
Brunno, pelo que eu entendi, o MediaStore ja vem agrupado com todas as
imagens do celular quando monta um sdcard ou liga o sistema
operacional, e os comandos do cara do StackOverflhow, eh tipo uma
consulta pelo id das imagens de uma respectiva pasta, comparando com o
id das imagens que estao no MediaStore, dai no final ele retorna um
URI com o agrupamento das imagens que estao no MediaStore e na pasta
que voce fez a consulta

On Sep 30, 3:24 pm, Bruno Albuquerque <bruno.albuquer...@gmail.com>
wrote:
> Ah.. Se eu entendi aquilo direito, então a app em si permite abrir um
> diretório? E o que acontece com ele depois? Vira um album?
>
> -Bruno
>
> Em 30 de setembro de 2011 16:10, marcos <mar...@dev-br.com> escreveu:
>
>
>
>
>
>
>
> > depois de muito sofrer, consegui resolver meu problema
>
> > solução:http://stackoverflow.com/questions/2238760/android-cooliris-gallery-d...

marcos

unread,
Sep 30, 2011, 3:30:11 PM9/30/11
to Android Brasil - Dev
Sobre os albuns.... acho que quem organiza isso eh o aplicativo da
galeria, dai pode ter album por data, tipo, nome e essas coisas, acho
que eh implementacao da galeria e nao do android

On Sep 30, 3:24 pm, Bruno Albuquerque <bruno.albuquer...@gmail.com>
wrote:
> Ah.. Se eu entendi aquilo direito, então a app em si permite abrir um
> diretório? E o que acontece com ele depois? Vira um album?
>
> -Bruno
>
> Em 30 de setembro de 2011 16:10, marcos <mar...@dev-br.com> escreveu:
>
>
>
>
>
>
>
> > depois de muito sofrer, consegui resolver meu problema
>
> > solução:http://stackoverflow.com/questions/2238760/android-cooliris-gallery-d...

Diego Moreira Rosa

unread,
Sep 30, 2011, 4:38:50 PM9/30/11
to androidb...@googlegroups.com
Marcos,

alguns meses atrás, eu precisei dessa mesma feature que você está
procurando e também não encontrei nada. Parece que de fato não é
possível iniciar o Gallery em um álbum/pasta específico, o que é
bastante frustrante. Até abri um bug pra isso, dá uma olhada:

http://code.google.com/p/android/issues/detail?id=9436

Seguem outros links relacionados:

http://groups.google.com/group/android-developers/browse_thread/thread/4200c807f78b1709?pli=1
http://code.google.com/p/android/issues/detail?id=7823
http://stackoverflow.com/questions/2238760/android-cooliris-gallery-developer-documentation/

Se você precisa realmente dessa funcionalidade, não descarte escrever
a sua própria "galeria". Pode ser mais fácil do que parece (e um bom
exercício também!).

Abraço,
Diego Moreira Rosa

2011/9/30 marcos <mar...@dev-br.com>:

Reply all
Reply to author
Forward
0 new messages