Desde o Android 4.3 (Jelly Bean), agora podemos fazer uso das res/mipmap
pastas para armazenar imagens "mipmap".
Por exemplo, o Chrome para Android armazena seus ícones nessas pastas em vez das res/drawable
pastas mais normais .
Como essas imagens mipmap são diferentes das outras imagens desenháveis familiares?
Vejo que, no meu manifesto, usamos o @mipmap/
qualificador, em vez de @drawable/
, o que faz sentido, considerando o nome da pasta do recurso:
<activity
android:name=".MipmapDemp"
android:icon="@mipmap/ic_launcher" />
Referências:
O documento APIs do Android 4.3 tem o seguinte a dizer:
Usar um mipmap como fonte para seu bitmap ou desenho é uma maneira simples de fornecer uma imagem de qualidade e várias escalas de imagem, o que pode ser particularmente útil se você espera que sua imagem seja dimensionada durante uma animação.
O Android 4.2 (API nível 17) adicionou suporte para mipmaps na classe Bitmap - o Android troca as imagens mip no seu Bitmap quando você fornece uma fonte de mipmap e ativou setHasMipMap (). Agora no Android 4.3, você também pode ativar os mipmaps para um objeto BitmapDrawable, fornecendo um ativo mipmap e definindo o atributo android: mipMap em um arquivo de recurso de bitmap ou chamando hasMipMap ().
Não vejo nada lá que me ajude a entender.
Os recursos de bitmap XML têm uma android:mipMap
propriedade:
Boleano. Ativa ou desativa a dica do mipmap. Veja setHasMipMap () para mais informações. O valor padrão é falso.
Isso não se aplica aos ícones do iniciador, tanto quanto eu posso ver.
A questão foi levantada nos Grupos do Google ( O objetivo do nome do recurso "mipmap" ?! ), ao qual Romain Guy respondeu:
É útil fornecer uma imagem em uma resolução maior que normalmente seria computada (por exemplo, em um dispositivo mdpi, o Launcher pode querer que o ícone maior do hdpi exiba atalhos de aplicativos grandes.)
Eu sinto que isso quase faz sentido, mas não completamente.
Ainda estou inclinado a acompanhar o acompanhamento de Randy Sugianto:
Quais são as vantagens disso? Existe algum guia sobre como usar mipmaps, provavelmente para melhores ícones do iniciador?
Obviamente, a Wikipedia possui uma página para o "Mipmap" , que se refere a uma técnica mais antiga inventada em 1983, que não consigo relacionar com a implementação atual do Android.
Atualmente, devemos armazenar todos os ícones de aplicativos em res/mipmap
pastas e quais são as diretrizes para essas imagens mipmap?
Atualização # 1
Aqui está uma postagem no blog que tenta explicar um pouco.
Mas a imagem usada nessa postagem do blog mostra o que parece um arquivo com muitos logotipos. Não é isso que vejo na pasta mipmap do Chrome.
A mipmap-hdpi
pasta do Chrome contém três imagens. Um é o logotipo do Chrome, por si só.
Estranhamente, é 72x72, não 48x48, que eu esperaria ver.
Talvez isso seja tudo o que há para isso - precisamos apenas manter ícones maiores nas pastas mipmap?
Atualização # 2
A postagem do blog de desenvolvedores do Android de 23/10/2014 confirma novamente a ideia de usar as mipmap
pastas para os ícones de aplicativos:
Ao falar sobre a densidade da tela do Nexus 6, o autor escreve:
É uma prática recomendada colocar os ícones do seu aplicativo em pastas mipmap (não nas pastas desenháveis), pois elas são usadas em resoluções diferentes da densidade atual do dispositivo. Por exemplo, um ícone de aplicativo xxxhdpi pode ser usado no iniciador para um dispositivo xxhdpi.
Atualização # 3
Observe que o Android Studio cria os ic_launcher.png
ícones nas mipmap...
pastas, e não nas drawable...
pastas que o Eclipse usou para criá-los.