![]()
Um ícone adaptativo, ou AdaptiveIconDrawable, pode aparecer de maneira diferente
dependendo das características do dispositivo e do tema do usuário. Os ícones adaptativos são
usados principalmente pelo acesso rápido na tela inicial, mas também podem ser usados em
atalhos, no app Configurações, em caixas de diálogo de compartilhamento e na tela de visão geral. Os ícones adaptativos
são usados em todos os formatos do Android.
Ao contrário das imagens de bitmap, os ícones adaptativos podem se adaptar a diferentes casos de uso:
Formas diferentes:um ícone adaptativo pode ter várias formas em diferentes modelos de dispositivo. Por exemplo, ele pode exibir uma forma circular em um dispositivo OEM e uma forma quadrada com bordas arredondadas em outro dispositivo. Cada OEM de dispositivo precisa fornecer uma máscara, que o sistema usa para renderizar todos os ícones adaptativos com o mesmo formato.
Figura 1. Os ícones adaptativos são compatíveis com várias máscaras, que variam de um dispositivo para outro. Efeitos visuais:um ícone adaptativo é compatível com uma variedade de efeitos visuais interessantes, que aparecem quando os usuários colocam ou movem o ícone na tela inicial.
Figura 2. Exemplos de efeitos visuais mostrados por um ícone adaptativo. Temas do usuário:a partir do Android 13 (nível 33 da API), os usuários podem aplicar temas aos ícones adaptativos. Se um usuário ativar os ícones de app temáticos nas configurações do sistema e a tela de início for compatível com esse recurso, o sistema vai usar a cor do plano de fundo e o tema escolhidos pelo usuário para determinar a tonalidade dos ícones do app para apps que têm uma camada
monochromeno ícone adaptativo. A partir do Android 16 QPR 2, o Android aplica automaticamente temas aos ícones de apps que não têm um próprio.
Figura 3. Ícones adaptativos que herdam o plano de fundo e os temas do usuário. Nos cenários a seguir, a tela inicial não mostra o ícone do app com tema, mas sim o ícone adaptativo ou padrão:
- Se o usuário não ativar os ícones do app com tema.
- Se o app não tiver um ícone monocromático e o dispositivo do usuário executar uma versão do Android anterior ao Android 16 QPR 2.
- Se a tela de início não oferecer suporte para ícones de apps com tema.
Criar ícones adaptativos
Para garantir a compatibilidade do ícone adaptativo com diferentes formatos, efeitos visuais e temas do usuário, o design precisa atender aos seguintes requisitos:
Para a versão colorida do ícone, você precisa oferecer duas camadas: uma para o primeiro plano e a outra para o segundo plano. As camadas podem ser vetores ou bitmaps, mas os vetores são preferíveis.
Figura 4. Ícones adaptativos definidos usando camadas de primeiro e segundo plano. A zona segura de 66 x 66 mostrada é a área que nunca é cortada por uma máscara com uma forma definida por um OEM.
Figura 5. Exemplo de como as camadas de primeiro e segundo plano aparecem juntas com uma máscara circular aplicada. Se você quiser ativar a compatibilidade com os temas dos usuários para ícones do app, disponibilize uma versão monocromática do ícone com uma única camada.
Figura 6. Uma camada de ícone monocromático (à esquerda) com exemplos de prévias de cores (à direita). Defina o tamanho de todas as camadas como 108 x 108 dp.
Use ícones com bordas nítidas. As camadas não podem ter máscaras ou sombras de fundo ao redor do contorno do ícone.
Use um logotipo com pelo menos 48 x 48 dp. Ele não pode exceder 66 x 66 dp, porque os 66 x 66 dp internos do ícone aparecem na janela de visualização mascarada.
Os 18 dp externos em cada um dos quatro lados das camadas são reservados para mascaramento e para criar efeitos visuais, como paralaxe ou pulsação.
Para saber como criar ícones adaptativos usando o Android Studio, consulte o modelo do Figma para ícones de apps Android ou a documentação do Android Studio para criar ícones na tela de início. Leia também a postagem do blog Como criar ícones adaptativos (link em inglês).
Adicionar o ícone adaptativo ao app
Assim como os ícones não adaptativos, os ícones adaptativos são especificados usando o
atributo android:icon no manifesto do
app.
Um atributo opcional, android:roundIcon, é usado por telas de início que representam
apps com ícones circulares e pode ser útil se o ícone do seu app incluir um
plano de fundo circular como parte principal do design. Essas telas de início precisam
gerar ícones de apps aplicando uma máscara circular a android:roundIcon. Essa
garantia permite otimizar a aparência do ícone do app, por
exemplo, ampliando um pouco o logotipo e garantindo que, quando cortado, o
plano de fundo circular seja totalmente preenchido.
O snippet de código abaixo ilustra esses dois atributos, mas a maioria dos apps
especifica apenas android:icon:
<application ... android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" ...> </application>
Em seguida, salve o ícone adaptativo em res/mipmap-anydpi-v26/ic_launcher.xml. Use
o elemento <adaptive-icon> para definir os recursos de primeiro plano, plano de fundo e
camada monocromática dos seus ícones. Os elementos internos <foreground>,
<background> e <monochrome> são compatíveis com imagens
vetoriais e de bitmap.
O exemplo a seguir mostra como definir os elementos <foreground>, <background> e <monochrome> dentro de <adaptive-icon>:
<?xml version="1.0" encoding="utf-8"?> ... <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="@drawable/ic_launcher_background" /> <foreground android:drawable="@drawable/ic_launcher_foreground" /> <monochrome android:drawable="@drawable/ic_launcher_foreground" /> </adaptive-icon> ...
As camadas de primeiro plano e monocromática estão usando o mesmo drawable. No entanto, é possível criar drawables separados para cada camada, se necessário.
Também é possível definir drawables como elementos incorporando-os aos elementos
<foreground>, <background> e <monochrome>. O snippet
abaixo mostra um exemplo de como fazer isso com o drawable de primeiro plano.
<?xml version="1.0" encoding="utf-8"?> ... <foreground> <inset android:insetBottom="18dp" android:insetLeft="18dp" android:insetRight="18dp" android:insetTop="18dp"> <shape android:shape="oval"> <solid android:color="#0000FF" /> </shape> </inset> </foreground> ...
Se você quiser aplicar a mesma máscara e o mesmo efeito visual aos atalhos que os ícones adaptativos normais, use uma destas técnicas:
- Para atalhos estáticos, use o elemento
<adaptive-icon>. - Para atalhos dinâmicos, chame o método
createWithAdaptiveBitmap()ao criá-los.
Para mais informações sobre como implementar ícones adaptativos, consulte Como implementar ícones adaptativos. Para mais informações sobre atalhos, consulte Visão geral dos atalhos de apps.
Outros recursos
Consulte os recursos a seguir para mais informações sobre como projetar e implementar ícones adaptativos.
- Modelo de página da comunidade do Figma
- Noções básicas sobre ícones adaptativos do Android (link em inglês)
- Como criar ícones adaptativos (link em inglês)
- Como implementar ícones adaptáveis (link em inglês)
- Criar ícones do app no Android Studio
- Especificações de design de ícones do Google Play