Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Adición de imágenes / iconos adicionales a CardFragment (Android Wear)

Estoy mirando esta imagen de ejemplo de Google, y tratando de averiguar cómo implementar algo como esto.

Parece muy similar al diseño estándar de CardFragment que toma un título, una descripción y un icono. Pero veo una imagen de reloj extra / animación a la izquierda, lo que me hace pensar que utilizan un diseño personalizado. ¿Es esto posible hacer con un CardFragment estándar? ¿O hay otra clase de conveniencia que permite el soporte de varios iconos?

Introduzca aquí la descripción de la imagen

  • No se muestra la notificación de Android Wear si se utiliza FLAG_NO_CLEAR
  • Uso de la base de datos existente en Android Wear
  • Android Wear: utiliza el color sólido especificado para el fondo de la notificación
  • ¿Existe un recurso / widget pre-construido para el indicador de progreso "agradable" indeterminado en Android Wear?
  • ¿Cómo desactiva Android Wear cuando está en modo de suspensión?
  • Formato de comando de juego entre controlador de bluetooth y consola
  • La aplicación aleatoria se bloquea en Android Wear 5.0.X
  • Implementación de aplicaciones Android Wearable en Moto 360 para propósitos de depuración
  • 2 Solutions collect form web for “Adición de imágenes / iconos adicionales a CardFragment (Android Wear)”

    Logré esto extendiendo el CardFragment y reemplazando onCreateContentView :

     @Override public View onCreateContentView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mRootView = (ViewGroup) inflater.inflate(R.layout.fragment_my_card, null); ... } 

    Esto le permite controlar lo que pasa en la tarjeta blanca.

    La imagen de muestra que está mostrando es en realidad una notificación personalizada. Necesitará familiarizarse con las notificaciones de Android Wear aquí:

    Notificaciones personalizadas

    Este ejercicio es un poco largo, así que trataré de ser breve pero conciso.

    1) En primer lugar, deberá definir un diseño de notificación personalizado que defina la apariencia de la notificación en un archivo de diseño XML. Para duplicar el ejemplo de Google, defina un diseño XML que contenga un ImageView para el temporizador de progreso circular y dos campos de texto para las descripciones del entrenamiento:

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ImageView ... </> <RelativeLayout android:layout_marginStart="20dp" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView ... </> <TextView ... </> </RelativeLayout> 

    2) Cree una clase CircularTimer.class que amplíe la API Drawable. Esta clase debe implementar un método start () y stop () para manejar la cuenta atrás del temporizador. La API Drawable está fuera del alcance de este ejercicio, pero puede averiguar más buscando en la web en las barras de progreso. Para mayor brevedad, he aquí un ejemplo:

     public class CircularTimer() extends Drawable { ... public CircularTimer(int maxValue) { ... } @Override public void onDraw(Canvas canvas) { // Use drawCircle(), drawArc() to draw a circle and pie bar // Use drawText to draw the timeout value in center of circle } ... } 

    4) Cree una clase WorkoutCustomView.class y establezca su vista de contenido en el XML previamente definido. Obtenga una referencia de ImageView y establezca un objeto dibujable para el método setImageDrawable (). Por ejemplo:

     mImageView = (ImageView) findViewById(R.id.imageview); mCircularTimer = new CircularTimer(60); // 60s countdown mImageView.setImageDrawable(mCircularTimer); 

    3) Configure su notificación básica:

     NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setContentTitle("Workout") .setContentText("Push Ups") .setSmallIcon(R.drawable.ic_bicep); 

    4) Crear una intención y la intención pendiente que se iniciará por la notificación personalizada:

     Intent i = new Intent(this, WorkoutCustomView.class); PendingIntent pi = PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT); 

    5) Establezca el objeto de intención pendiente para el método setDisplayIntent () de la clase WearableExtender:

      NotificationCompat.WearableExtender we = new NotificationCompat.WearableExtender() .setDisplayIntent(pi); // Add wearable specific features builder.extend(wearableExtender); 

    6) Envíe su notificación

     NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(NOTIFICATION_ID, builder.build()); 

    ¡Espero que esto ayude!

    Para más información, visite http://www.learnandroidwear.com/wear-custom-notification . El autor realmente implementó una réplica exacta de su ejemplo.

    Andrés

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.