Drawable

Ver también

  1. Gráficos 2D

Un recurso drawable es un concepto general para un gráfico que puede dibujarse en la pantalla y que puedes recuperar con APIs tales como getDrawable(int) o aplicar otro recurso XML con atributos tales como android:drawable and android:icon.
Hay distitnos tipos de drawables:

  • Fichero de Mapa de Bits: Un fichero gráfico de mapa de bits (.png, .jpg, or .gif).
    Creates a BitmapDrawable.
  • Fichero de Nueve Parches: Un fichero PNG con zonas estirables que permiten el redimensionamiento de la imagen basado en el contenido (.9.png). Crea un NinePatchDrawable.
  • Layer List: Un drawable que gestiona un array de otros Drawables. Estos se sacan del array en orden, de modo que el elemento con el mayor índice es el primero en sacarse. Crea un LayerDrawable.
  • State List: Un fichero XML que referencia diferentes gráficos de mapas de bits para diferentes estados (por ejemplo, para usar una imagen diferente cuando el botón está siendo pulsado). Crea un StateListDrawable.
  • Level List: Un fichero XML que define un file drawable que gestiona un número de Drawables alternativos, cada uno asignado a un valor numérico máximo. Crea un LevelListDrawable.
  • Transition Drawable: Un fichero XML que define un drawable que hace transición entre dos recursos drawable. Crea un TransitionDrawable.
  • Inset Drawable: Un fichero XML que define un drawable que intercala otro drawable a una distancia especificada Esto es útil cuando una View necesita un drawable de fonddo que sea mas pequeño que los límites reales de la View.
  • Clip Drawable: Un fichero XML que define un drawable que recorta otro Drawable basado en el valor de nivel de este Drawable. Crea un ClipDrawable.
  • Scale Drawable: Un fichero XML que define un drawable que cambia el tamaño de otro Drawable basado en su valor actual de nivel. Crea un ScaleDrawable
  • Shape Drawable: Un fichero XML que define una figura geométrica, incluyendo colores y gradientes. Crea un ShapeDrawable.

Ver también el Recurso Animation para ver cómo crear un AnimationDrawable.

Note: Se puede usar un recurso color como un drawable en XML. Por ejemplo, cuando se crea una state list
drawable
, puedes referir un recurso de color para el atributo android:drawable (android:drawable="@color/green").

Mapa de Bits

Una imagen de mapa de bits. Android soporta ficheros de mapa de bits en tres formatos:.png (preferido), .jpg (aceptable), .gif (desaconsejado).

Puedes referenciar un fichero de mapa de bits directamente, usando el nombre del fichero como ID de recurso, o crear un alias de ID de recurso en XML.

Nota: Los ficheros de mapa de bits pueden optimizarse automáticamente con compresión de imagen sin pérdida usando la herramienta aapt durante el proceso de compilación. Por ejemplo, un PNG de color auténtico que no requiere mas de 256 colores puede convertirse en un PNG a 8 bits con una paleta de color. Esto resultará en una imagen de igual calidad pero que requiere menos memoria. Debes, por tanto, ser consciente de que los binarios de las imágenes situadas en este directorio pueden cambiar durante la compilación. Si planeas leer los binarios de imágenes como bit stream para convertirla a BitMap, pon tus imágenes en la carpeta res/raw/, dónde no serán optimizadas.

Fichero Bitmap

Un fichero de mapa de bits es un fichero .png, .jpg, o .gif. Android crea un recurso Drawable para cualquiera de estos ficheros cuando los guardas en el directorio res/drawable/.

  • localización del fichero: res/drawable/nombrefichero.png (.png, .jpg, o .gif)
    . El nombre del fichero se usa como ID de recurso.
  • tipo de dato del recurso compilado: Puntero de recurso a un BitmapDrawable.
  • resource reference:
    En Java: R.drawable.filename

En XML: @[paquete:]drawable/filename

  • ejemplo: Con una imagen guardada en res/drawable/myimage.png, este XML de layout aplica la imagen a una View:
    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/myimage" />

    El siguiente código de aplicación recupera la imagen como un Drawable:

    Resources res = getResources();
    Drawable drawable = res.getDrawable(R.drawable.myimage);
  • ver también:

Mapa de bits XML

Un mapa de bits XML es un recurso definido en XML que apunta a un fichero bitmap. El efecto es un alias para el fichero bitmap bruto. El XML puede especificar propiedades adicionales para el bitmap tales como dithering y tiling.

Nota: Puedes usar un elemento <bitmap> como hijo de un elemento <item>. Por ejemplo, cuando se crea un state list o layer list, puedes excluir el atributo android:drawable de un elemento <item> y anidar un <bitmap> dentro que defina el item drawable.

  • localización del fichero: res/drawable/filename.xmlEl nombre del fichero se usa como resource ID.
  • tipo de dato del recurso: Puntero de recurso a un BitmapDrawable.
  • referenciando el recurso:
    En Java: R.drawable.filenameEn XML: @[paquete:]drawable/filename
  • sintaxis:
    <?xml version="1.0" encoding="utf-8"?>
    <bitmap
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@[package:]drawable/drawable_resource"
        android:antialias=["true" | "false"]
        android:dither=["true" | "false"]
        android:filter=["true" | "false"]
        android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                          "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                          "center" | "fill" | "clip_vertical" | "clip_horizontal"]
        android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />
  • elementos:
    • <bitmap>: Define el fuente y sus propiedades.

      atributos:

      • xmlns:android

    String. Define el namespace XML, que debe ser "http://schemas.android.com/apk/res/android". Sólo se requiere si es el elemento raiz — no se requiere cuando el <bitmap> está anidado dentro de ubn <item>.

  • android:src

Recurso Drawable. Requerido. Referencia a un recurso drawable.

  • android:antialias

Boolean. Habilita o deshabilita el antialiasing.

  • android:dither

Boolean. Habilita o deshabilita el dithering del bitmap si el bitmap no tiene la misma configuración de pixel que la pantalla (por ejemplo: un bitmap ARGB 8888 con una pantalla RGB 565).

  • android:filter

Boolean. Habilita o deshabilita el filtrado del bitmap. El filtrado se usa cuando se encoje o se estira el bitmap para suavizar su apariencia.

  • android:gravity

Keyword. Define la gravedad para el bitmap. La gravedad indica dónde posicionar el drawable en su contenedor si el bitmap es menor que dicho contenedor.

Debe ser una o mas (separadas por ‘|’) de los siguientes valores constantes:

Valor Descripción
top Pon el objeto en lo alto de su contenedor sin cambiar su tamaño.
bottom Pon el objeto al fondo de su contenedor sin cambiar su tamaño.
left Pon el objeto en el borde izquierdo de su contenedor sin cambiar su tamaño.
right Pon el objeto en el borde derecho de su contenedor sin cambiar su tamaño.
center_vertical Sitúa el objeto en el centro vertical de su contenedor sin cambiar su tamaño.
fill_vertical Aumenta el tamaño vertical del objeto si fuera necesario para llenar completamente su contenedor.
center_horizontal Sitúa el objeto en el centro horizontal de su contenedor sin cambiar su tamaño.
fill_horizontal Aumenta el tamaño horizontal del objeto si fuera necesario para llenar completamente su contenedor.
center Sitúa el objeto en el centro de su contenedor, tanto en el eje vertical como en el horizontal, sin cambiar su tamaño.https://alberovalley.wordpress.com/wp-admin/post.php?post=127&action=edit&message=10
fill Aumenta el tamaño horizontal y vertical del objeto si fuera necesario para llenar completamente su contenedor. Este es el comportamiento por defecto.
clip_vertical Opción adicional que puede elegirse para que se recorten los bordes superior y/o inferior del elemento hijo a los bordes de su contenedor. El recorte se basa en la gravedad vertical: una gravedad superior (top) recorta el borde inferior, una gravedad inferior (bottom) recorta el borde superior, y ninguna recorta ambos bordes.
clip_horizontal Opción adicional que puede elegirse para que se recorten los bordes izquierdo y/o derecho del elemento hijo se recorten a los bordes de su contenedor. El recorte se basa en la graveddad horizontal: una gravedad izquierda  (left) recorta el borde derecho, una gravedad derecha (right) recorta el borde izquierdo, y ninguna recorta ambos bordes.
  • android:tileMode

Palabra clave. Define el modo mosaico. Cuando se habilita el modo mosaico, el mapa de bits se repite. La gravedad se ignora cuando el modo mosaico está activo. .

Debe ser uno de los siguientes valores:

Valor Descripción
disabled Modo deshabilitado. Valor por defecto.
clamp Replica el color del borde si el shader dibuja fuera de sus bordes originales
repeat Repite vertical y horizontalmente la imagen del shader.
mirror Repite horizontal y verticalmente la imagen del shader, alternando imágenes reflejadas para que las imágenes adyacentes siempre encajen.

  • ejemplo:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/icon"
    android:tileMode="repeat" />
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: