Documentos de Académico
Documentos de Profesional
Documentos de Cultura
WIDGETS
Temas avanzados de Android
Los widgets son vistas de apps en miniatura que pueden incorporarse en otras
apps (como la pantalla principal) y recibir actualizaciones periódicas. Estas vistas
se denominan widgets en la interfaz de usuario, y puedes publicar una con un
proveedor de widgets de apps. Se denomina host de widgets de la app el
componente de esta que puede contener otros widgets de la app.
Para crear el widget de una app, necesitamos lo siguiente:
Objeto AppWidgetProviderInfo:
1
Temas avanzados de Android
Por ejemplo:
Atributos <appwidget-provider>:
2
Temas avanzados de Android
3
Temas avanzados de Android
Debemos definir un diseño inicial para el widget de nuestra app en formato XML
y guardarlo en el directorio res/layout/ del proyecto.
Vamos a ver cómo diseñar un widget para que se ajuste gráficamente con otros
widgets y con los otros elementos de la pantalla principal de Android, como los
íconos de selector y los accesos directos. También describiremos algunos
estándares para las imágenes de los widgets y algunas sugerencias y trucos de
gráficos para widgets.
4
Temas avanzados de Android
Los widgets típicos de las apps para Android tienen tres componentes
principales: un cuadro de límite, un marco, los controles gráficos del widget y
otros elementos. Los widgets de apps pueden contener un subconjunto de los
widgets de vista en Android; los controles compatibles incluyen etiquetas de
texto, botones e imágenes. Los widgets bien diseñados dejan algunos márgenes
entre los bordes del cuadro de límite y el marco, y relleno entre los bordes
internos del marco y los controles del widget.
Por lo general, los widgets tienen márgenes entre el cuadro de límite y el marco,
y relleno entre el marco y los controles del widget. A partir de Android 4.0, los
widgets de apps tienen automáticamente márgenes entre el marco del widget y
el cuadro de límite del widget de apps para proporcionar una mejor alineación
con otros widgets y otros iconos en la pantalla principal del usuario.
5
Temas avanzados de Android
1 40 dp
2 110 dp
3 180 dp
4 250 dp
… …
n 70 x n-30
La altura mínima debe ser la altura de tus dos “TextViews” para el artista y el
título, además de algunos márgenes de texto. El ancho mínimo debe ser el ancho
mínimo utilizable de los botones Reproducir y Siguiente, más el ancho mínimo
del texto (por ejemplo, el ancho de 10 caracteres) y cualquier margen de texto
horizontal.
6
Temas avanzados de Android
Esta suele ser una función preferida para los widgets de colecciones, como los
basados en “ListView” o “GridView”.
7
Temas avanzados de Android
Algunos widgets de apps, como los que usan un “StackView”, tienen un fondo
transparente. En este caso, cada elemento individual en “StackView” debe usar
un fondo de nueve parches que sea de borde a borde con pocos píxeles
transparente de borde (o ninguno) para los márgenes.
8
Temas avanzados de Android
9
Temas avanzados de Android
10
Temas avanzados de Android
Habiendo visto las pautas de diseño para widgets, podemos diseñar el widget de
nuestra app utilizando los objetos de vista.
Debemos tener en cuenta que los diseños de los widgets de las apps se basan
en “RemoteViews”, que no son compatibles con todo tipo de diseño o widget de
vista.
Un objeto RemoteViews (y, en consecuencia, el widget de una app) puede
admitir las siguientes clases de diseño:
• FrameLayout
• LinearLayout
• RelativeLayout
• GridLayout
Y las siguientes clases de widgets:
• AnalogClock
11
Temas avanzados de Android
• Button
• Chronometer
• ImageButton
• ImageView
• ProgressBar
• TextView
• ViewFlipper
• ListView
• GridView
• StackView
• AdapterViewFlipper
No son compatibles los elementos descendientes de estas clases.
RemoteViews también admite “ViewStub”, una vista invisible de tamaño cero que
podemos usar para ampliar de manera diferida los recursos de diseño durante el
tiempo de ejecución.
En los dispositivos con Android 8.0 (API nivel 26) o posterior, los selectores que
te permiten crear accesos directos fijos también te permiten fijar widgets de apps.
Al igual que los accesos directos fijos, estos widgets fijos ofrecen a los usuarios
acceso a tareas específicas de tu app.
12
Temas avanzados de Android
13
Temas avanzados de Android
Si queremos crear una imagen de vista previa para el widget de nuestra app
(para especificar en el campo “previewImage”), el emulador de Android incluye
una app llamada "Widget Preview". Para crear una imagen de vista previa,
iniciamos esta app, seleccionamos el widget de nuestra app y configuramos el
aspecto que deseemos para la imagen de vista previa. Luego, lo guardamos y lo
colocamos en los recursos de elementos de diseño de nuestra app.
14