Pergunta

Para o aplicativo em que estou trabalhando atualmente, criei algo como ImageSwitcher Para várias imagens (imagine o iPhone's UIScrollView com a paginação ativada).

No começo, eu codifiquei alguns ImageViews e carregou seus recursos desenhados na criação/inflação, mas depois de alguns ajustes (e o que eu pensei em melhorias), reduzi as visualizações necessárias para 3, dos quais 2 são ImageViews usado para exibir a página atual e animar entre a página atual e a nova.

Com essa mudança, comecei a usar setImageResource/setImageDrawable Para o carregamento dinâmico da nova imagem no meu 2 ImageViews Antes de deslizar através das páginas (estou usando arquivos PNG, dimensionados para exibições HVGA).

Para minha decepção, o desempenho piorou, na medida em que sentir um pouco de atraso ao deslizar mais rápido pelas páginas. Uma rápida olhada em TraceView revelou que 17,4% do tempo total ao usar o aplicativo, mais de 5 vezes mais do que o próximo método pesado, foi consumido de BitmapFactory.nativeDecodeAsset, chamado pela minha configuração dinâmica de recursos desenhados.

Estou pensando em maneiras de contornar isso e quero fazê -lo da melhor maneira possível, para que quaisquer sugestões sejam bem -vindas.

Foi útil?

Solução

Em qual formato você tem as imagens?

O Android funciona nativamente com imagens RGB565; portanto, se você puder converter suas imagens para esse formato, a decodificação será muito mais rápida.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top