page.title=Como trabalhar com desenháveis @jd:body
As seguintes capacidades dos desenháveis ajudam na implementação do Material Design nos aplicativos:
Esta lição mostra como usar esses recursos no seu aplicativo.
Com o Android 5.0 (API de nível 21) e posteriores, você pode colorir bitmaps e nine-patches definidos como
máscaras alfa. Você pode colori-los com recursos de cor ou atributos de tema que determinam os recursos
de cor (por exemplo, ?android:attr/colorPrimary
). Normalmente, você cria esses ativos
somente uma vez e colore-os automaticamente para combinar com seu tema.
Você pode aplicar um tingimento aos objetos {@link android.graphics.drawable.BitmapDrawable} ou {@link
android.graphics.drawable.NinePatchDrawable} com o método {@code setTint()}. Você também
pode configurar a cor e o modo do tingimento nos layouts com os atributos android:tint
e
android:tintMode
.
A Biblioteca de Suporte r21 do Android e posteriores incluem a classe {@link android.support.v7.graphics.Palette}, que permite a extração de cores proeminentes de uma imagem. Essa classe extrai as seguintes cores proeminentes:
Para extrair essas cores, passe um objeto {@link android.graphics.Bitmap} para o método estático {@link android.support.v7.graphics.Palette#generate Palette.generate()} no encadeamento do segundo plano em que você carrega as imagens. Se você não puder usar aquele encadeamento, chame o método {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} e forneça um escutador como alternativa.
Você pode recuperar as cores proeminentes da imagem usando métodos de obtenção na classe
Palette
, como Palette.getVibrantColor
.
Para usar a classe {@link android.support.v7.graphics.Palette} no projeto, adicione a seguinte dependência do Gradle ao módulo do aplicativo:
dependencies { ... compile 'com.android.support:palette-v7:21.0.0' }
Para obter mais informações, consulte a referência de API para a classe {@link android.support.v7.graphics.Palette} .
Gráficos de vetor do Android
No Android 5.0 (API de nível 21) e posteriores, você pode definir desenháveis de vetor que são dimensionáveis
sem perder definição. Você precisa apenas de um arquivo de ativos para uma imagem de vetor, em vez de um arquivo de ativos
para cada densidade de tela no caso de imagens de bitmap. Para criar uma imagem de vetor, defina os detalhes
da forma dentro de um elemento XML <vector>
.
O exemplo a seguir define uma imagem de vetor com a forma de um coração:
<!-- res/drawable/heart.xml --> <vector xmlns:android="http://schemas.android.com/apk/res/android" <!-- intrinsic size of the drawable --> android:height="256dp" android:width="256dp" <!-- size of the virtual canvas --> android:viewportWidth="32" android:viewportHeight="32"> <!-- draw a path --> <path android:fillColor="#8fff" android:pathData="M20.5,9.5 c-1.955,0,-3.83,1.268,-4.5,3 c-0.67,-1.732,-2.547,-3,-4.5,-3 C8.957,9.5,7,11.432,7,14 c0,3.53,3.793,6.257,9,11.5 c5.207,-5.242,9,-7.97,9,-11.5 C25,11.432,23.043,9.5,20.5,9.5z" /> </vector>
Imagens de vetor são representadas no Android como objetos {@link android.graphics.drawable.VectorDrawable}
. Para obter mais informações sobre a sintaxe pathData
, consulte a Referência do caminho SVG. Para obter informações sobre
como animar propriedades de desenháveis de vetor, consulte
Animar desenháveis de vetor.