Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Image Baker, Nine-patch e outros tipos de geradores de imagens

Olá,

  1. Durante o curso o professor abordou a ferramenta "img-bak" https://www.img-bak.in/ que ajuda a gerar a partir de uma imagem de alta qualidade, todas os tamanhos para as pastas drawable-*dpi.

  2. Conheço outro para geração de imagens que é o "Nine-patch Generator" https://romannurik.github.io/AndroidAssetStudio/nine-patches.html#. Ele faz o mesmo processo mas as imagens geradas são *.9.png.

  3. Já vi também que tem alguns que geram em *.svg.

Gostaria de saber qual a diferença entre esses métodos de geração de imagem e qual o melhor deles? Principalmente a respeito do nine-patch que até hoje não entendi 100% o propósito.

Obrigado.

2 respostas
solução!

Olá Bodão!

  1. O "img_back" é uma ferramenta para gerar os diferentes tamanhos de uma imagem automaticamente, de forma proporcional. Ou seja, de uma imagem 1000 x 1000, gera as 24x24, 36x36, 48x48, e assim por diante, sempre mantendo a proporção da imagem.

  2. O 9patch usa a idéia de repetição de um trecho da imagem para adequá-la a um padrão diferente do original. Vamos a um exemplo: digamos que você tem uma imagem quadrada de 20x20 e quer coloca-la de fundo de um botão retangular 50x20. Você sabe como é a borda direita e a esquerda, ou seja, como a imagem começa e termina. Então você diz ao 9patch qual é o trecho da imagem que deve se repetir, ou seja, o meio da imagem (o centro do quadrado) e a ferramenta gera as copias sequenciais preenchendo o meio do retângulo até formar uma imagem do tamanho desejado, adequando o quadrado para o retângulo. A ferramenta é adequada em situações como essa, de imagens simples que permitam repetições, mas não para imagens como retratos de pessoas que não é possível repetir um treco da imagem sem causar estranheza.

    Aqui na documentação do Android você pode ver mais detalhes: https://developer.android.com/studio/write/draw9patch.html?hl=pt-bra

  3. O SVG é um formato de gráfico vetorial, ou seja, ele permite que a imagem seja redimensionada sem deformar. Em outras palavras, todo bitmap é formado por um conjunto fixo de pixels, enquanto a imagem vetorial é composta de um conjunto de equações que definem formas, o que permite que ao ser redimensionado, ele não perca definição. Ele é bem mais leve que o PNG e parece bem mais útil, não é? Entretanto, não é suportado por versões mais antigas do Android. Apenas as versões superiores a API 21 (Lollipop) possuem suporte a SVG, ou seja, a familia dos Androids 4.x não suportam ;)

Espero ter ajudado!!!

Tais, obrigado pela explicação! Esclareceu perfeitamente.

Ah, e ainda bem que você me atentou sobre o SVG, porque estou usando ele em alguns ícones em um app que o api min é 16. Vou até dar uma verificada nisso agora!

Ajudou muito!