Skip to content

Most visited

Recently visited

navigation

Trabajar con interfaces dibujables

Las siguientes capacidades para las interfaces dibujables te ayudan a implementar Material Design en tus aplicaciones:

Esta lección te muestra cómo usar estas características en tu aplicación.

Cambiar el matiz de los recursos dibujables

Con Android 5.0 (API nivel 21) y superior, puedes cambiar el matiz de los mapas de bits y nueve parches definidos como máscaras alfa. Puedes cambiar el matiz con recursos de colores o atributos de temas que se resuelven a recursos de colores (por ejemplo, ?android:attr/colorPrimary). Generalmente, puedes crear estos recursos solo una vez y agregarles color automáticamente para que coincidan con tu tema.

Puedes aplicar un matiz a los objetos BitmapDrawable o NinePatchDrawable con el método setTint(). También puedes establecer el color de matiz y el modo en tus diseños con los atributos android:tint y android:tintMode.

Extraer colores prominentes de una imagen

La Biblioteca de soporte de Android r21 y superiores incluye la clase Palette, que te permite extraer colores prominentes de una imagen. Esta clase extrae los siguientes colores prominentes:

Para extraer estos colores, pasa un objeto Bitmap al método estático Palette.generate() en el subproceso en segundo plano en donde cargas tus imágenes. Si no puedes usar dicho subproceso, llama al método Palette.generateAsync() y proporciona un gestor de eventos en su lugar.

Puedes recuperar los colores prominentes de la imagen mediante los métodos de obtención en la clase Palette, como Palette.getVibrantColor.

Para usar la clase Palette en tu proyecto, agrega la siguiente Dependencia Gradle al módulo de tu aplicación:

dependencies {
    ...
    compile 'com.android.support:palette-v7:21.0.0'
}

Para más información, consulta la referencia de la API para la clase Palette.

Crear interfaces dibujables en vector

Video

Gráficos en vector de Android

En Android 5.0 (API nivel 21) y superiores, puedes definir las interfaces dibujables en vector, que escalan sin perder definición. Solo necesitas un archivo de recurso para una imagen en vector, en oposición a un archivo de recurso para la densidad de cada pantalla en el caso de imágenes de mapa de bits. Para crear una imagen en vector, defines los detalles de la forma dentro de un elemento XML <vector>.

El siguiente ejemplo define una imagen en vector con la forma de un corazón:

<!-- 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>

Las imágenes en vector están representadas en Android como objetos VectorDrawable. Para más información sobre la sintaxis pathData, consulta la referencia de ruta de acceso SVG. Para más información sobre la animación de las propiedades de las interfaces dibujables en vector, consulta Animación de interfaces dibujables en vector.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)