Cómo crear diseños personalizados para Wear

Con Wear OS by Google, crear diseños para un reloj es similar a hacerlo para un teléfono, con la diferencia de que debes tener en cuenta el tamaño de pantalla y la visibilidad. Si portas la funcionalidad y la IU de una app para teléfono a un reloj, no obtendrás una buena experiencia.

Solo debes crear diseños personalizados cuando sea necesario. Si quieres obtener información sobre cómo diseñar apps increíbles para relojes, consulta los lineamientos de diseño para Wear OS.

Cómo crear notificaciones personalizadas

En general, debes crear notificaciones en el teléfono y permitir que se sincronicen automáticamente con el dispositivo wearable. De esta manera, podrás crear las notificaciones una sola vez y determinar que aparezcan en distintos tipos de dispositivos (no solo relojes, sino también en Auto y TV) sin tener que diseñarlas para diferentes factores de forma.

Si los estilos de notificaciones estándar no te resultan útiles (como NotificationCompat.BigTextStyle o NotificationCompat.InboxStyle), puedes mostrar una actividad con un diseño personalizado. Solo puedes crear y emitir notificaciones personalizadas en el reloj; el sistema no las sincronizará con el teléfono.

Nota: Cuando crees notificaciones personalizadas en el reloj, puedes usar las API de notificaciones estándar (nivel de API 20) en lugar de la biblioteca de compatibilidad.

Para crear notificaciones personalizadas, haz lo siguiente:

  1. Crea un diseño y establécelo como la vista de contenido de la actividad que quieres mostrar.

    Kotlin

        override fun onCreate(savedInstanceState: Bundle?) {
            ...
            setContentView(R.layout.notification_activity)
        }
        

    Java

        public void onCreate(Bundle bundle){
            ...
            setContentView(R.layout.notification_activity);
        }
        
  2. Define las propiedades necesarias para la actividad en el manifiesto de Android a fin de permitir que esta se muestre en el proceso de trasmisión de contexto del reloj. Debes declarar que la actividad puede exportarse, incorporarse y que tiene una afinidad de tarea vacía. Además, te recomendamos que establezcas el tema en Theme..DeviceDefault.Light. Por ejemplo:
        <activity android:name="com.example.MyDisplayActivity"
            android:exported="true"
            android:allowEmbedded="true"
            android:taskAffinity=""
            android:theme="@android:style/Theme.DeviceDefault.Light" />
        
  3. Crea un PendingIntent para la actividad que quieras mostrar. Por ejemplo:

    Kotlin

        val notificationPendingIntent: PendingIntent =
                Intent(this, NotificationActivity::class.java).let { notificationIntent ->
                    PendingIntent.getActivity(
                            this,
                            0,
                            notificationIntent,
                            PendingIntent.FLAG_UPDATE_CURRENT
                    )
                }
        

    Java

        Intent notificationIntent = new Intent(this, NotificationActivity.class);
        PendingIntent notificationPendingIntent = PendingIntent.getActivity(
                this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        
  4. Crea una Notification, llama a setDisplayIntent() y proporciona el PendingIntent. El sistema usa este PendingIntent para iniciar la actividad cuando los usuarios ven la notificación.
  5. Emite la notificación con el método notify().

    Nota: En Wear 1.x, cuando se visualiza una notificación en la pantalla principal, el sistema la muestra con una plantilla estándar que genera a partir de los datos semánticos de la notificación. Esta plantilla funciona bien en todas las caras de reloj. Cuando los usuarios deslizan la notificación hacia arriba, ven su actividad personalizada.

Cómo crear diseños con la biblioteca de IU de Wear

La biblioteca de IU de Wear se incluye automáticamente cuando creas tu app para relojes con el Asistente de proyectos de Android Studio. Además, puedes agregar esta biblioteca a tu archivo build.gradle con la siguiente declaración de dependencia:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:wear:26.0.0'
        compile 'com.google.android.gms:play-services-wearable:+'
    }
    

Esta biblioteca te ayuda a crear IU diseñadas para relojes. Para obtener más información, consulta Cómo crear IU personalizadas para dispositivos Wear.

A continuación, se muestran algunas de las clases principales:

BoxInsetLayout
Corresponde a un objeto FrameLayout que reconoce la forma de la pantalla y puede ubicar sus elementos secundarios en el cuadrado central de una pantalla circular.
ConfirmationActivity
Corresponde a una actividad que muestra animaciones de confirmación luego de que el usuario completa una acción.
AnimationSet
Corresponde a un grupo de animaciones que deben reproducirse en conjunto.
CircularProgressLayout
Corresponde a un diseño que proporciona un temporizador de cuenta regresiva circular alrededor de la vista secundaria. Por lo general, se usa como temporizador automático para confirmar una operación luego de que transcurrió un breve lapso.
SnapHelper
SnapHelper admite ajustes para un objeto RecyclerView.
PagerSnapHelper
Corresponde a la implementación de la instancia SnapHelper que admite el ajuste del estilo del localizador en orientación horizontal o vertical.
AlertDialog
Corresponde a una subclase de Dialog que puede mostrar uno, dos o tres botones.
ProgressBar
Muestra una barra al usuario en la que se representa el progreso de la operación; la app puede modificar el nivel de progreso (cambiar la longitud de la barra) a medida que esta avanza.
WearableRecyclerView
Corresponde a la implementación específica de dispositivos wearable de la clase RecyclerView para mostrar listas desplazables de elementos en dispositivos cuadrados o circulares.

Referencia de la API de la biblioteca de IU de Wear

En la documentación de referencia, se proporciona una explicación detallada sobre cómo usar cada widget de la IU. Explora la Documentación de referencia sobre la API de Wear para obtener información sobre las clases mencionadas anteriormente.

Nota: Se recomienda usar Android Studio en el desarrollo para Wear OS, ya que proporciona elementos prácticos de configuración de proyectos, inclusión de bibliotecas y empaquetado.