Este proyecto de Android acompaña el artículo Transiciones continuas de elementos compartidos: RecyclerView a ViewPager. El código que se indica aquí proporciona la implementación de una transición específica entre fragmentos de Android. Demuestra la manera de implementar una transición de una imagen en un <code>RecyclerView</code> a una imagen en un <code>ViewPager</code> y viceversa usando "Elementos compartidos" para determinar las vistas que participan en la transición y la forma en que lo hacen. También administra el caso complejo de transicionar de vuelta a la cuadrícula después de cambiar a la página que contiene un elemento que anteriormente estaba fuera de la pantalla. <strong>Este no es un producto oficial de Google.</strong>
Esta demostración implementa un visor de la cámara de alto rango dinámico en tiempo real alternando el tiempo de exposición del sensor entre dos valores en los fotogramas pares e impares y combinando los últimos dos fotogramas siempre que captura un fotograma nuevo.
En este ejemplo, se explica cómo transferir archivos grandes mediante Android Beam. Después de implementar el protocolo de enlace inicial a través de NFC, la transferencia de archivos se realizará mediante un canal de comunicación secundario de alta velocidad, como Bluetooth o Wi-Fi Direct. Esta función requiere Android 4.1 (Jelly Bean) o versiones posteriores. A diferencia de lo que ocurre con la función Transmitir tradicional, tu app no recibirá un intent en el dispositivo receptor. En cambio, el sistema guardará el archivo en el disco y mostrará una notificación que el usuario puede seleccionar para abrir el archivo por medio de un intent ACTION_VIEW estándar.
El ejemplo muestra cómo anunciar pequeñas cantidades de datos por medio de la API de Bluetooth de bajo consumo. También explica cómo analizar esos anuncios (para acceder a la operación completa, se requieren 2 dispositivos).
El ejemplo muestra cómo usar el perfil de atributo genérico (GATT) de Bluetooth de bajo consumo para transmitir datos arbitrarios entre dispositivos.
En este ejemplo, se muestra cómo usar Autofill Framework. Incluye implementaciones de actividades del cliente con vistas que deben autocompletarse y un servicio que puede brindar datos de autocompletar para las actividades del cliente.
En este ejemplo, se muestra cómo crear una aplicación que acepte contenido enriquecido (como imágenes) enviado desde un teclado mediante la API de Commit Content.
El ejemplo muestra cómo desarrollar un teclado que envíe contenido enriquecido (como imágenes) a los campos de texto mediante la API de contenido de confirmación.
En este ejemplo, se muestra el uso básico del modo pantalla en pantalla en dispositivos portátiles. El ejemplo reproduce un video. Este se sigue reproduciendo cuando en la app se activa el modo pantalla en pantalla. En este modo, la app muestra un elemento de acción para pausar o reanudar el video.
En este ejemplo, se muestra el uso básico del modo pantalla en pantalla en dispositivos portátiles. El ejemplo reproduce un video. Este se sigue reproduciendo cuando en la app se activa el modo pantalla en pantalla. En este modo, la app muestra un elemento de acción para pausar o reanudar el video.
En este ejemplo básico, se muestran los permisos de tiempo de ejecución disponibles en Android M y versiones posteriores. Detalla cómo usar la nueva API de permisos de tiempo de ejecución para verificar y solicitar permisos por medio de la biblioteca de compatibilidad.
En este ejemplo básico, se muestran los permisos de tiempo de ejecución disponibles en Android M y versiones posteriores. Detalla cómo usar la nueva API de permisos de tiempo de ejecución para verificar y solicitar permisos por medio de la biblioteca de compatibilidad.
En este ejemplo, se muestra cómo almacenar datos en el espacio de almacenamiento protegido del dispositivo, que siempre está disponible mientras se inicia el dispositivo, tanto antes como después del ingreso de las credenciales del usuario (PIN, patrón o contraseña).
En este ejemplo, se muestra cómo usar la API de accesos directos de Launcher que se introdujo en Android 7.1 (API 25). Esta API permite que las aplicaciones definan un conjunto de intents que se muestran cuando un usuario mantiene presionado el ícono de selector de la app. Se brindan ejemplos para registrar ambos vínculos tanto estáticamente en XML como dinámicamente durante el tiempo de ejecución.
El ejemplo muestra el uso básico de la nueva API de "Apps centradas en documentos". Te permite crear documentos nuevos en el menú Recientes del sistema y mantiene su estado a pesar de los reinicios.
En este ejemplo, se muestra cómo usar la función Fuentes para descargar que se introdujo en Android O. Fuentes para descargar es una función que permite a las apps solicitar una determinada fuente a un proveedor, en lugar de empaquetarla o descargarla por su cuenta. De esta manera, no es necesario empaquetar las fuentes como un elemento.
En este ejemplo, se muestra cómo usar la función Fuentes para descargar que se introdujo en Android O. Fuentes para descargar es una función que permite a las apps solicitar una determinada fuente a un proveedor, en lugar de empaquetarla o descargarla por su cuenta. De esta manera, no es necesario empaquetar las fuentes como un elemento.
En este ejemplo, se muestra cómo se usa la biblioteca de compatibilidad EmojiCompat. Puedes usar esta biblioteca para evitar que tu app muestre caracteres de emoji faltantes en forma de tofu (□). Puedes usar fuentes de emoji empaquetadas o descargables. En este ejemplo, se muestran ambos usos.
En este ejemplo, se muestra cómo se usa la biblioteca de compatibilidad EmojiCompat. Puedes usar esta biblioteca para evitar que tu app muestre caracteres de emoji faltantes en forma de tofu (□). Puedes usar fuentes de emoji empaquetadas o descargables. En este ejemplo, se muestran ambos usos.
En el ejemplo, se muestran las recomendaciones para usar notificaciones de NotificationStyle (Inbox, BigPicture, BigText y Mensajes) en apps para dispositivos móviles y nativas o locales de Wear. También abarca las notificaciones en Wear 1 (y versiones posteriores) y Wear 2.0.
En este ejemplo, se muestra cómo usar CardView, que se introdujo en la biblioteca de compatibilidad en Android 5.0.
En este ejemplo, se muestra cómo usar CardView, que se introdujo en la biblioteca de compatibilidad, en Android 5.0.
En el ejemplo, se muestra cómo usar RecyclerView para diseñar elementos con LinearLayoutManager y GridLayoutManager. También detalla cómo controlar eventos táctiles sobre los elementos.
En el ejemplo, se muestra cómo usar RecyclerView para diseñar elementos con LinearLayoutManager y GridLayoutManager. También detalla cómo controlar eventos táctiles sobre los elementos.
El ejemplo muestra cómo puedes administrar los datos remotos que requieren permisos en el wearable y en el dispositivo móvil.
Es un ejemplo simple que muestra pantallas de reloj y complicaciones de Wear 2.0.
Se trata de un conjunto de ejemplos de guías de inicio rápido que muestran el uso de las API de Firebase en Android. Para obtener más información, consulta https://firebase.google.com.
Se trata de un conjunto de ejemplos de guías de inicio rápido que muestran el uso de las API de Firebase en Android. Para obtener más información, consulta https://firebase.google.com.
En este ejemplo, se detalla cómo usar transiciones de escenas de una actividad a otra en Lollipop. Usa una combinación de changeImageTransform y changeBounds para realizar una transición de una cuadrícula de imágenes a una actividad con una imagen grande y texto detallado.
Esta app básica muestra cómo usar el marco de trabajo de transición que se introdujo en KitKat. La app muestra opciones para seleccionar diferentes ambientes y alterna entre ellos de distintas maneras.
En este ejemplo, se muestra cómo implementar una transición personalizada que extienda la de clase estándar.
En este ejemplo, se muestra cómo usar animaciones de interpolación y trayectorias de animación en <code>Material Design</code>.
Es una colección de demostraciones para el movimiento en Material Design. Material Design ofrece muchos ejemplos de diseño de movimiento. En este ejemplo, se muestra cómo implementarlos en Android. <li>Información sobre el movimiento</li> <li>Velocidad</li> <li>Coreografía</li> <li>Personalización</li> En Animaciones y transiciones, se explica cómo usar varias API de animación en Android. Todos los códigos fuente de las demostraciones se encuentran en el paquete de demostraciones. Layout > Dissolve <img src="screenshots/dissolve.gif" height="400" alt="dissolve" /> Layout > Fade through <img src="screenshots/fadethrough.gif" height="400" alt="fadethrough" /> Layout > FAB transformation <img src="screenshots/fabtransformation.gif" height="400" alt="fab" /> List > Reorder <img src="screenshots/reordering.gif" height="400" alt="reorder" /> List > Stagger <img src="screenshots/stagger.gif" height="400" alt="stagger" /> List > Oscillation <img src="screenshots/oscillation.gif" height="400" alt="oscillation" /> Navigation > Shared element <img src="screenshots/sharedelement.gif" height="400" alt="sharedelement" /> Navigation > Fade through <img src="screenshots/navigationfadethrough.gif" height="400" alt="navfadethrough" />
El ejemplo muestra un efecto revelar circular. Abarca la creación de un ViewAnimationUtils así como la definición de los parámetros del efecto revelar circular, lo que incluye la posición de inicio y el radio.
Esta app de ejemplo muestra cómo integrar Google Analytics para Firebase en una app instantánea.
En esta aplicación de ejemplo, se muestra cómo usar la API de cookies. Contiene almacenamiento y recuperación de valores mediante la API del framework de Android y la API de Servicios de Play de InstantApps. Uso Esta API está disponible tanto para la app instantánea como para la app instalada, y permite migrar los datos generados por el usuario de una app instantánea a una instalada. El flujo de esta API es el siguiente: <li>Verifica si la cookie se ajusta a los permisos.</li> <li>Almacena datos dentro de la app instantánea.</li> <li>Recupera datos de la app instalada.</li> li> <p>Esta API está disponible para la API 26 o versiones posteriores mediante PackageManagerCompat.</p> Variantes de compilación Este ejemplo tiene dos variantes de compilación: <li><code>framework</code> -> Android 8.0 (nivel de API 26) o posterior</li> <li><code>playServices</code> -> Cualquier nivel de API</li> Ambas variantes de compilación brindan las mismas funciones, pero una usa la API de Framework y la otra emplea la API de InstantApps de los Servicios de Play. Prueba la API con este modelo <li>Ejecuta la aplicación marcando "implementar como app instantánea" en la configuración de ejecución.</li> <li>Almacena algunos datos.</li> <li>Ejecuta la aplicación desmarcando "implementar como app instantánea" en la configuración de ejecución.</li> <li>Recupera los datos almacenados anteriormente.</li>
Esta aplicación de ejemplo muestra cómo usar la [API de instalación](https://developers.google.com/android/reference/com/google/android/gms/instantapps/InstantApps.html#showInstallPrompt(android.app.Activity,%20android.content.Intent,%20int,%20java.lang.String)). La API activa el intent para instalar la app en el dispositivo. La llamada también acepta intents que se activan cuando se completa la instalación. Si una app quiere usar esta API, necesita una app instalable en Google Play Store. Los applicationIds deben coincidir en la app instantánea y en el módulo de aplicaciones.
Esta app de ejemplo muestra cómo compilar una app instalable y una instantánea con los mismos comportamientos. La funcionalidad de la app instantánea se divide en dos funciones que puedes iniciar individualmente en un dispositivo.
En este ejemplo, se muestra cómo crear un servicio iniciado o de vínculo en las Apps instantáneas Android.
Esta aplicación de ejemplo muestra cómo usar la API de almacenamiento. Corresponde a los dispositivos que ejecutan versiones de Android <strong>anteriores al nivel de API 26</strong>. En los dispositivos que ejecutan el nivel de API 26 o posterior, el framework de Android se encarga de migrar los datos del usuario de la app instantánea a la instalada. Después de que se complete la instalación, la app instalada transfiere los datos almacenados de la app instantánea por medio de esta API, lo que brinda al usuario una experiencia sin interrupciones. Uso En la app instalada, llama a la [API de almacenamiento](https://developers.google.com/android/reference/com/google/android/gms/instantapps/InstantAppsClient.html#getInstantAppData()). La API te permite acceder a los datos almacenados en la app instantánea. Para obtener más información sobre el almacenamiento de datos, consulta [la documentación](https://developers.google.com/android/reference/com/google/android/gms/instantapps/InstantAppsClient.html#getInstantAppData()).
Este ejemplo de API muestra cómo implementar consultas observables en objetos Flowable.
En este ejemplo de API, se muestra cómo usar objetos Flowable en Kotlin.
En este ejemplo, se muestran los siguientes componentes de la arquitectura: <li>Room</li> <li>ViewModels</li> <li>LiveData</li>
Esta es una app de ejemplo que usa componentes de la arquitectura de Android con Dagger 2. <strong>NOTA</strong> Se trata de un ejemplo relativamente más complejo y completo, por lo que, si no estás familiarizado con los componentes de la arquitectura, te recomendamos primero que consultes otros ejemplos en este repositorio.
En este ejemplo, se muestran los siguientes componentes de la arquitectura: <li>LiveData</li> <li>ViewModels</li> <li>Vinculación de datos</li> Y los siguientes artefactos: <li>androidx.lifecycle.lifecycle-livedata-ktx</li> Este proyecto muestra cómo integrarlos en las corrutinas de Kotlin usando el compilador <code>liveData</code>.
Características En este ejemplo, se muestra el comportamiento de una vista de navegación inferior que sigue los Principios de Navigation. <li>El destino de inicio es fijo.</li> <li>El estado de navegación debe representarse mediante una pila de destinos.</li> <li>El botón Arriba nunca sale de tu app.</li> <li>Los botones Arriba y Atrás son idénticos dentro de la tarea de tu app.</li> <li>Los vínculos directos y la navegación directa a un destino deben generar la misma pila.</li> Consulta las pruebas de la IU para obtener información sobre escenarios específicos.
En este ejemplo, se muestran los siguientes componentes de la arquitectura: <li>Paging</li> <li>Room</li> <li>ViewModels</li> <li>LiveData</li>
En este ejemplo, se muestra cómo exponer los datos guardados en la biblioteca de persistencias Room con el framework del proveedor de contenido de Android.
Esta es una aplicación simple de procesamiento de imágenes escrita en Kotlin que muestra cómo usar WorkManager para realizar trabajos en segundo plano.
Jetpack Compose. El objetivo del ejemplo es mostrar los componentes de Material, los elementos arrastrables de la IU, las vistas de Android en Compose y el control de estado de la IU. Para probar esta app de ejemplo, debes usar la versión más reciente de Canary de Android Studio 4.2. Puedes clonar este repositorio o importar el proyecto desde Android Studio siguiendo los pasos que se indican aquí.
Jetnews es una app de ejemplo para leer noticias compilada con Jetpack Compose. El objetivo del ejemplo es mostrar las capacidades actuales de la IU de Compose. Para probar esta app de ejemplo, debes usar la versión más reciente de Canary de Android Studio 4.2. Puedes clonar este repositorio o importar el proyecto desde Android Studio siguiendo los pasos que se indican aquí.
Jetcaster es una app de ejemplo de podcasts, compilada con Jetpack Compose. El objetivo del ejemplo es mostrar la aplicación de temas dinámicos y la arquitectura completa. Para probar esta app de ejemplo, debes usar la versión más reciente de Canary de Android Studio 4.2. Puedes clonar este repositorio o importar el proyecto desde Android Studio siguiendo los pasos que se indican aquí. Estado: 🚧 En curso 🚧 Jetcaster todavía está en las primeras etapas de desarrollo, y, por lo tanto, solo se creó una pantalla hasta el momento. Sin embargo, se implementó la mayor parte de la arquitectura de la app, así como la capa de datos y las etapas iniciales de la aplicación de temas dinámicos.
Jetchat es una app de ejemplo de chat compilada con Jetpack Compose. Para probar estas apps de ejemplo, debes usar la versión más reciente de Canary de Android Studio 4.2. Puedes clonar este repositorio o importar el proyecto desde Android Studio siguiendo los pasos que se indican aquí. En este ejemplo, se muestra lo siguiente: <li>Administración del estado de la IU</li> <li>Integración con los componentes de la arquitectura: Navigation, Fragments, LiveData, ViewModel</li> <li>Control del botón Atrás</li> <li>Administración de entrada de texto y enfoque</li> <li>Varios tipos de animaciones y transiciones</li> <li>Guardado de los estados durante los cambios de configuración</li> <li>Aplicación básica de temas en Material Design</li> <li>Pruebas de la IU</li> <img src="screenshots/jetchat.gif" /> Estado: 🚧 En curso Jetchat está en desarrollo, y aún no se implementaron algunas funciones.
Jetsnack es una app de ejemplo de pedidos de comida compilada con Jetpack Compose. Para probar estas apps de ejemplo, debes usar la versión más reciente de Canary de Android Studio 4.2. Puedes clonar este repositorio o importar el proyecto desde Android Studio siguiendo los pasos que se indican aquí. En este ejemplo, se muestra lo siguiente: <li>Cómo implementar un sistema de diseño personalizado</li> <li>Diseño personalizado</li> <li>Animación</li> <img src="screenshots/jetsnack.gif" /> Estado: 🚧 En curso 🚧 Jetsnack está en desarrollo, y aún no se implementaron algunas pantallas.
Jetsurvey es una app de ejemplo de encuestas compilada con Jetpack Compose. El objetivo del ejemplo es mostrar las capacidades de entrada de texto, validación y estado de Compose. Para probar estas apps de ejemplo, debes usar la versión más reciente de Canary de Android Studio 4.2. Puedes clonar este repositorio o importar el proyecto desde Android Studio siguiendo los pasos que se indican aquí.
Este ejemplo es un Owl, un estudio de Material Design. Para probar estas apps de ejemplo, debes usar la versión más reciente de Canary de Android Studio 4.2. Puedes clonar este repositorio o importar el proyecto desde Android Studio siguiendo los pasos que se indican aquí. En este ejemplo, se presenta lo siguiente: <li>Aplicación de temas de Material y Temas claro/oscuro</li> <li>Diseño personalizado</li> <li>Animación</li>
Este ejemplo es un Rally, un estudio de Material Design. Para probar estas apps de ejemplo, debes usar la versión más reciente de Canary de Android Studio 4.2. Puedes clonar este repositorio o importar el proyecto desde Android Studio siguiendo los pasos que se indican aquí. En este ejemplo, se muestra lo siguiente: <li>Aplicación de temas de Material</li> <li>Diseños personalizados y elementos reutilizables</li> <li>Gráficos y tablas</li> <li>Animaciones</li> <img src="screenshots/rally.gif" /> Estado: 🚧 En curso Este ejemplo está en desarrollo y aún no se han implementado algunas funciones.
En este ejemplo, se muestra cómo implementar un chat de texto bidireccional por Bluetooth entre dos dispositivos Android con todas las funciones principales de la API de Bluetooth.
En este ejemplo, se muestra cómo conectarse a la red y obtener HTML sin procesar mediante HttpsURLConnection. AsyncTask se usa para obtener datos en un subproceso, en segundo plano.
En el ejemplo, se muestran las prácticas recomendadas para usar las API de WifiRTT en Android. Además, esta es una aplicación útil para probar teléfonos y puntos de acceso compatibles con WiFi-RTT y validar si la distancia estimada se aproxima a la real entre ellos.
En este ejemplo, se muestran las siguientes funciones de la biblioteca de vinculación de datos: <li>Expresiones y variables de diseño</li> <li>Observabilidad mediante campos observables, LiveData y clases observables</li> <li>Adaptadores, métodos y convertidores de vinculación</li> <li>Integración continua con ViewModels</li> Muestra prácticas comunes no recomendadas y sus soluciones en dos pantallas diferentes.
Este ejemplo presenta las siguientes funciones de la biblioteca de vinculación de datos con una app que muestra un temporizador de entrenamiento. <li>Vinculación de datos bidireccional</li> <li>Alternativas a la vinculación de datos bidireccional</li> <li>Adaptadores de vinculación con varios parámetros</li> <li>Animaciones con adaptadores de vinculación</li> <li>Convertidores inversos y de vinculación</li> <li>Vinculación de datos con ViewModels y Kotlin</li> <li>Ausencia de llamadas al framework de la IU en la actividad</li> <li>Pruebas</li>
En este ejemplo, se muestra cómo establecer restricciones en otras apps como propietario de perfiles. Usa el ejemplo de AppRestrictionSchema para configurar las restricciones.
Esta app básica muestra cómo permitir que un administrador de dispositivos restrinja las actividades de los usuarios mediante la API de administración de dispositivos Android. La aplicación exporta una política personalizada que habilita o inhabilita un control de IU. Las aplicaciones de administración de dispositivos pueden aplicar un valor específico para esta política, según lo indican los administradores de empresas.
El ejemplo muestra cómo usar la función para restringir apps en los dispositivos que admiten varios usuarios
En este ejemplo, se muestran las funcionalidades básicas de la API de perfil administrado que se introdujo en Android 5.0 (Lollipop). Puedes configurar esta app como propietario de perfiles y usarla para habilitar o inhabilitar apps en el nuevo perfil administrado. También puedes establecer restricciones para algunas apps, habilitar o inhabilitar el reenvío de intents entre perfiles, y borrar todos los datos asociados al perfil.
En este ejemplo, se muestra cómo usar algunas funciones de propietario de dispositivo. Como propietario del dispositivo, puedes configurar opciones globales, como la zona horaria y la hora automática. Puedes controlar un selector específico por medio de un controlador de intents determinado.
En este ejemplo, se muestra cómo usar NFC para aprovisionar un dispositivo nuevo con un propietario de dispositivo. Este último es un tipo de administrador de dispositivos especializado que puede controlar la seguridad y la configuración del dispositivo. Este ejemplo no es un propietario de dispositivo en sí, sino que se trata de una app de programación que envía un mensaje NFC a otro dispositivo no aprovisionado y le indica que configure la app del propietario de dispositivo especificada.
En este ejemplo, se muestra cómo cargar mapas de bits grandes de manera eficiente en el procesamiento de IU, almacenar mapas de bits en caché (en la memoria y en el disco), administrar la memoria de los mapas de bits y mostrarlos en elementos de IU, como ViewPager y ListView/GridView.
En este ejemplo, se muestra cómo aplicar filtros de color y tonos a los elementos de diseño de manera programática y como recursos de elementos de diseño en XML. El ajuste de tono se establece en un elemento de diseño de nueve parches por medio de los parámetros "tint" y "tintMode". El color de tono es la lista de estado de colores. Define los colores para distintos estados de una vista (como inhabilitada o habilitada, enfocada, presionada o seleccionada). De manera programática, el ajuste del tono se aplica a un elemento de diseño mediante su método "setColorFilter" con referencia a un color y a un modo de combinación PorterDuff. El modo de combinación y el color pueden cambiarse desde la IU para observar el efecto de las distintas opciones.
En este ejemplo, se muestra cómo usar las API de efectos multimedia que se agregaron en Android 4.0.
Este ejemplo detalla cómo mostrar un documento PDF en pantalla mediante el PdfRenderer que se agregó en Android 5.0 (Lollipop).
Este ejemplo detalla cómo mostrar un documento PDF en pantalla mediante el PdfRenderer que se agregó en Android 5.0 (Lollipop).
Es una app de ejemplo que muestra cómo usar AccountTransferApi para transferir cuentas durante la configuración de un dispositivo nuevo.
En este ejemplo, se muestra cómo usar la API de credenciales (SmartLock para contraseñas) y la API de Acceso con Google en la misma aplicación. Para obtener más información, visita https://developers.google.com/identity/
En este ejemplo, se muestra cómo usar las API de verificación por SMS de los Servicios de Play para obtener acceso a mensajes de texto con etiquetas especiales (las etiquetas asocian el mensaje con el APK) sin necesidad de obtener el permiso de recuperación de SMS completo (SMS_READ).
Ejemplo de AutofillFramework de Android (Kotlin) Este ejemplo demuestra cómo usar Autofill Framework. Incluye implementaciones de actividades del cliente con vistas que deben autocompletarse y un servicio que puede brindar datos de autocompletar para las actividades del cliente.
Este ejemplo detecta los gestos en una vista y los registra. Para probar este ejemplo, intenta arrastrar o presionar el texto.
El ejemplo muestra cómo usar las propiedades de MotionEvent para hacer un seguimiento de los toques individuales en múltiples eventos táctiles.
Muestra el uso de ActivityRecognitionApi para reconocer la actividad que está llevando a cabo un usuario, como caminar, conducir o quedarse quieto. Introducción Muestra el uso de ActivityRecognitionApi para reconocer la actividad que está llevando a cabo un usuario, como caminar, conducir o quedarse quieto. El usuario puede solicitar actualizaciones de actividad presionando el botón "Request Updates" y puede dejar de recibir actualizaciones si presiona el botón "Remove Updates". En el ejemplo, se usa un <code>IntentService</code> para procesar los cambios de actividad detectados, que se envían mediante la clase DetectedActivity a fin de obtener una lista de los tipos de DetectedActivity. Cada <code>DetectedActivity</code> se asocia con un nivel de confianza, que es un valor entero entre 0 y 100. Para ejecutar este ejemplo, <strong>se debe habilitar la ubicación</strong>.
Muestra el uso de la API de ubicación de los Servicios de Google Play para obtener la última ubicación conocida de un dispositivo. Introducción En este ejemplo, se muestra una manera sencilla de obtener la última ubicación conocida de un dispositivo, que, por lo general, corresponde a la ubicación actual del dispositivo. La precisión de la ubicación mostrada se basa en los permisos de ubicación que solicitaste y en los sensores de ubicación que estén activos en el dispositivo. Para ejecutar el ejemplo, <strong>se debe habilitar la ubicación</strong>. Este ejemplo usa FusedLocationProviderClient. Consulta también la versión de Kotlin de este ejemplo.
Muestra el uso de la API de ubicación de los Servicios de Google Play para obtener la última ubicación conocida de un dispositivo. Introducción En este ejemplo, se muestra una manera sencilla de obtener la última ubicación conocida de un dispositivo, que, por lo general, corresponde a la ubicación actual del dispositivo. La precisión de la ubicación mostrada se basa en los permisos de ubicación que solicitaste y en los sensores de ubicación que estén activos en el dispositivo. Para ejecutar el ejemplo, <strong>se debe habilitar la ubicación</strong>. Este ejemplo usa FusedLocationProviderClient.
Muestra cómo crear y quitar geovallados mediante GeofencingApi. Controla las transiciones de geovallas y crea notificaciones cada vez que un dispositivo entra a un geovallado o sale de él. Introducción El geovallado combina la percepción de la ubicación actual del usuario con la de funciones cercanas, definidas como la proximidad del usuario a ubicaciones que podrían ser de interés. Para marcar una ubicación de interés, especifica su latitud y longitud. A fin de ajustar la proximidad de la ubicación, agrega un radio. La latitud, la longitud y el radio definen un geovallado. Puedes tener varios geovallados activos al mismo tiempo. Los Servicios de ubicación tratan los geovallados como un área en vez de como una relación de puntos y proximidad. Esto permite detectar el momento en que el usuario entra a un geovallado o sale de él. Para cada geovallado, puedes pedir que los Servicios de ubicación te envíen eventos de entrada, de salida o ambos. Con el objetivo de limitar la duración de un geovallado, puedes especificar un vencimiento en milésimas de segundos. Una vez que vence el geovallado, los Servicios de ubicación lo quitan automáticamente. Para ejecutar este ejemplo, <strong>se debe habilitar la ubicación</strong>.
Muestra la manera de usar la API de Geocode y la geocodificación inversa para mostrar la ubicación de un dispositivo como una dirección. Introducción Este ejemplo se basa en los de BasicLocationSample y LocationUpdates incluidos en este repositorio. Esos ejemplos solo funcionan con valores de latitud y longitud. Si bien la latitud y longitud son útiles para calcular distancias o mostrar la posición en el mapa, en muchos casos resulta más útil la dirección de la ubicación. Las API de ubicación del framework de Android proporcionan una API de Geocode que contiene un método [getFromLocation()](http://developer.android.com/reference/android/location/Geocoder.html#getFromLocation(double, double, int)) que muestra una dirección estimada que corresponde a una latitud y longitud determinadas. En este ejemplo, se usa el método <code>getFromLocation()</code> a fin de realizar la búsqueda de direcciones de ubicación, un IntentService para recuperar la dirección de ubicación y un ResultReceiver a los efectos de procesar los resultados que envía el IntentService. Para ejecutar este ejemplo, <strong>se debe habilitar la ubicación</strong>.
Muestra la manera de usar la API de Geocode y la geocodificación inversa para mostrar la ubicación de un dispositivo como una dirección. Introducción Este ejemplo se basa en los de BasicLocationSample y LocationUpdates incluidos en este repositorio. Esos ejemplos solo funcionan con valores de latitud y longitud. Si bien la latitud y longitud son útiles para calcular distancias o mostrar la posición en el mapa, en muchos casos resulta más útil la dirección de la ubicación. Las API de ubicación del framework de Android proporcionan una API de Geocode que contiene un método [getFromLocation()]http://developer.android.com/reference/android/location/Geocoder.html#getFromLocation(double, double, int)) que muestra una dirección estimada que corresponde a una latitud y longitud determinadas. En este ejemplo, se usa el método <code>getFromLocation()</code> a fin de realizar la búsqueda de direcciones de ubicación, un IntentService para recuperar la dirección de ubicación y un ResultReceiver a los efectos de procesar los resultados que envía el IntentService. Para ejecutar este ejemplo, <strong>se debe habilitar la ubicación</strong>.
Muestra cómo usar la API del proveedor de ubicación combinada para obtener actualizaciones sobre la ubicación de un dispositivo. El proveedor de ubicación combinada es parte de las API de ubicación de los Servicios de Google Play. Introducción Este ejemplo se basa en el de BasicLocationSample incluido en este repositorio y permite al usuario solicitar actualizaciones de ubicación periódicas. En respuesta, la API actualiza la app de forma periódica con la mejor ubicación disponible, según los proveedores disponibles, como Wi-Fi y GPS (sistema de posicionamiento global). La precisión de la ubicación también se determina según los permisos de ubicación solicitados (aquí utilizamos ACCESS_FINE_LOCATION) y las opciones que definiste en la solicitud de ubicación. Este ejemplo usa FusedLocationProviderClient. Para ejecutar este ejemplo, <strong>se debe habilitar la ubicación</strong>.
En este ejemplo, se muestra cómo usar MediaCoder para decodificar un video, usar TimeAnimator para sincronizar los comandos de procesamiento con el procesamiento de fotogramas de la pantalla del sistema y, finalmente, procesarlo con TextureView.
En este ejemplo, se muestra cómo usar la API de MediaRouter para mostrar contenido en una pantalla secundaria. Usa el "elemento de acción de enrutamiento de contenido multimedia" de la ActionBar a fin de seleccionar un dispositivo de salida. Si tu dispositivo es compatible con pantallas inalámbricas Miracast, tal vez debas habilitar la función "Pantalla inalámbrica" en la configuración del sistema. La simulación en pantallas secundarias también puede habilitarse desde "Opciones para desarrolladores". Una vez que se establezca la conexión, usa el botón "Cambiar color" a fin de modificar el color de fondo de la pantalla secundaria.
En este ejemplo, se usa la cámara o cámara de video como fuente A/V para la API de MediaRecorder. Se usa una TextureView como vista previa de la cámara, lo que limita el código a la API 14 (o versiones posteriores). Se puede reemplazar fácilmente con una SurfaceView que se ejecute en dispositivos anteriores.
Muestra cómo crear un proveedor de rutas de contenido multimedia personalizado.
El ejemplo muestra cómo usar la API de MIDI para recibir y procesar señales MIDI provenientes de un dispositivo conectado.
El ejemplo muestra cómo usar la API de MIDI a fin de recibir y reproducir mensajes MIDI provenientes de un dispositivo conectado (teclado MIDI).
En este ejemplo, se muestra cómo usar la API de proyección de contenido multimedia para capturar la pantalla del dispositivo en tiempo real y mostrarla en una SurfaceView.
En este ejemplo, se muestra cómo implementar una app de música que permite la reproducción de videos desde el almacenamiento local (carpeta de elementos en el APK) o fuentes remotas mediante HTTP(S). 1. Es compatible con playlists, de modo que pueden combinarse varios videos a fin de reproducir uno tras otro y saltear alguno. 2. Es compatible con <code>MediaSession</code>, de modo que los auriculares Bluetooth externos pueden controlar tu contenido multimedia (reproducir, pausar, ir al siguiente, etc.) y ver qué contenido se está reproduciendo en ese momento (por ejemplo, desde la unidad principal de Bluetooth de un vehículo). 3. Es compatible con el foco de audio, de modo que puedes respetar el sistema de foco de audio de Android y pausar la reproducción si se está reproduciendo otro contenido. 4. Es compatible con la función de pantalla en pantalla (PIP), de modo que la reproducción de video de la app puede continuar en una ventana minimizada mientras el usuario utiliza otras apps. Para obtener más información sobre <code>ExoPlayer</code>, <code>MediaSession</code>, el foco de audio y la función PIP, lee esta serie de artículos en Medium que brindan detalles sobre estas API.
En el ejemplo, se muestra cómo usar OpenSL ES para crear un reproductor y grabador en Android Fast Audio Path y cómo conectarlos a un audio de bucle invertido. En la mayoría de los dispositivos Android, existe una ruta de audio optimizada que se ajusta para que la latencia sea baja. En el ejemplo, se crea un reproductor/grabador que funciona en esta ruta de audio altamente optimizada (a veces se denomina ruta de audio nativa, de latencia baja o de audio rápido). La aplicación se valida con respecto a las siguientes opciones de configuración: * Android L AndroidOne * Android M Nexus 5, Nexus 9 Este ejemplo usa el nuevo Android Studio con compatibilidad con CMake y muestra cómo usar la biblioteca STL compartida con Android Studio versión 2.2.0. Para obtener más información, consulta CMakeLists.txt <strong><em>Ten en cuenta que OpenSL ES es ahora la biblioteca de Oboe.</em></strong>
Bitmap Plasma es un ejemplo de Android que usa JNI para procesar un efecto de plasma en un mapa de bits de Android con C-code. Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++.
Endless Tunnel es un modelo de juego que muestra lo siguiente: - cómo usar la compatibilidad con C++ en Android Studio - cómo implementar un juego con la función glue nativa de Android - cómo brindar compatibilidad con joysticks, incluida la navegación robusta con controladores direccionales en pantallas no táctiles Este modelo NO tiene como fin mostrar la mejor manera de desarrollar la lógica del juego, de cargar recursos, etc. El juego es básico de modo que la atención se centre en la integración de C++ en Android Studio. Por ejemplo, el juego incluye texturas y geometría hard-coded en el código, por lo que funciona para pequeños juegos de demostración como este, pero no se adapta bien en juegos reales. Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++.
gles3jni es un ejemplo de C++ de Android que muestra cómo usar OpenGL ES 3.0 a partir del código de la JNI o nativo. La ruta de procesamiento de OpenGL ES 3.0 usa algunas funciones nuevas en comparación con la ruta de OpenGL ES 2.0: - Procesamiento en instancias y divisor de atributos de Vertex para reducir la cantidad de llamadas de dibujo y cambios uniformes. - Objetos de arreglo de Vertex para reducir la cantidad de llamadas requeridas para establecer el estado de los atributos de Vertex en cada marco. - Asignación explícita de ubicación de atributos, lo que elimina la necesidad de consultar asignaciones. Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++.
Hello GL2 es un ejemplo de Android C ++ que dibuja un triángulo con la API de GLES 2.0. Se utiliza JNI para realizar la renderización en C ++ mediante un GLSurfaceView creado a partir de una actividad normal de Java en Android. Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++.
Hello JNI es un ejemplo de Android que usa JNI para llamar C-code desde la actividad de Java de Android. Este ejemplo usa el nuevo codelab Hello-CMake
Este ejemplo es un complemento al modelo de Hello JNI y muestra cómo devolver la llamada a Java desde C-code - crear una instancia de clase Java desde C-code - llamar a funciones de los miembros estáticas y no estáticas clase Java Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++.
hello-libs es un ejemplo que muestra cómo puedes administrar bibliotecas C/C++ de terceros en Android Studio.
Hello Oboe es un ejemplo de Android que usa la biblioteca de Oboe para reproducir audio de forma nativa. Oboe agrupa AAudio y OpenSLES a fin de ayudar a los desarrolladores a reproducir y grabar audio en contextos sensibles de rendimiento, en todas las versiones de Android. El repositorio de Oboe contiene más información para aprovechar por completo la API de Oboe, además de ejemplos más detallados y documentación. Este ejemplo usa la función Studio Prefab para descargar la biblioteca de Oboe compilada previamente desde Google Maven. Puedes comprobar los pasos de Prefab en - gradle.properties - app/build.gradle - app/src/main/cpp/CMakeLists.txt. Si deseas compilar tu app con el código fuente de la biblioteca de Oboe, consulta los ejemplos del repositorio de Oboe.
La actividad nativa es un ejemplo de Android que inicializa un contexto GLES 2.0 y lee datos del acelerómetro a partir de C-code mediante dicha Actividad nativa. Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++.
El audio nativo es un ejemplo de Android que reproduce y graba sonidos con la API de OpenSLES de C++ mediante JNI. El grabador o los reproductores creados no están en una ruta de audio rápido. Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++. <strong><em>Ten en cuenta que OpenSL ES es ahora la biblioteca de Oboe.</em></strong>
El plasma nativo es un ejemplo de Android que procesa un efecto de plasma en un mapa de bits de Android con C-code mediante una actividad nativa. Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++.
San Angeles es el puerto de Android de una demostración que usa la API de C de GLES para procesar una escena. Consulta el archivo README original para obtener más información del puerto GLES original. Las demostraciones de ejemplo: - División del APK de ABI
Sensor graph es un ejemplo de C++ de Android que lee los valores actuales del acelerómetro y los dibuja mediante OpenGL. Detalla el uso de la siguiente API de C++ nativa: - Elementos Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++.
Teapots es una colección de ejemplos de C++ de Android que usa el procesamiento de Teapots para mostrar las funciones de la plataforma de Android NDK: - classic-teapot: Procesamiento de la malla de tetera clásica mediante la API de GLES 2.0 y NativeActivity. - more-teapots: procesamiento de varias instancias de Classic Teapot con el procesamiento de instancias de GLES 3.0. - choreographer-30fps: muestra varias técnicas de solicitud de velocidad de fotogramas según el nivel de API mediante la API de Choreographer y la extensión del tiempo de presentación de EGL de Android. - textured-teapot: procesamiento de Classic Teapot y texturas - image-decoder: es igual a textured-teapot, excepto que la decodificación de texturas se realiza con la API de ImageDecoder, que se introdujo en Android 11 (NDK de Android r21b) Este ejemplo usa el nuevo complemento CMake de Android Studio compatible con C++.
WEBP es un ejemplo de Android que incluye una app pequeña para mostrar el uso de WEBP en la vista de la actividad nativa<br />: - gira y rota 3 imágenes WEBP, y las carga en el búfer de pantalla. La decodificación se realiza en su subproceso Este ejemplo usa el nuevo complemento CMake de Android Studio.
En este ejemplo, se muestra cómo usar RenderScript para manipular imágenes de manera básica. Específicamente, permite a los usuarios ajustar dinámicamente la saturación de una imagen con un control deslizante. Un kernel RenderScript personalizado ajusta la saturación mediante la ejecución del cálculo en el GPU del dispositivo o en otro hardware de cálculo según lo considere apropiado del sistema.
En el ejemplo RenderScriptIntrinsicm se muestra cómo usar los elementos intrínsecos de RenderScript. Se crean varios de estos elementos y se muestra un resultado filtrado con varios parámetros. También detalla cómo extender el RedioButton con StateListDrawable.
Este ejemplo demuestra cómo usar las huellas digitales registradas para autenticar al usuario en tu app
Ejemplo de la biblioteca Androidx Biometrics
Una aplicación de ejemplo que muestra cómo registrarse y autenticarse por medio de credenciales de clave pública usando la API de FIDO2. Esta API se usa en dispositivos que ejecutan Android N (nivel de API 24) o versiones posteriores.
Un ejemplo que muestra cómo usar la biblioteca de seguridad de Jetpack a fin de encriptar y desencriptar archivos mediante la implementación de una app simple para tomar notas. <img src="screenshots/notes-list.png" height="400" alt="Captura de pantalla que muestra una lista de notas. Las notas indican 'Nota secreta' y 'Lista encriptada de tareas pendientes'." />
El ejemplo muestra cómo configurar SensorEventListeners para la detección de pasos y contadores de pasos.
<img src="screenshots/icon-web.png" height="256" alt="Ícono de la app" /> Este ejemplo indica cómo mostrar un documento PDF en pantalla mediante el PdfRenderer que se introdujo en Android 5.0 Lollipop.
La prueba de concepto de un administrador de archivos que usa Android 5.0 (nivel de API 21).
En este ejemplo, se muestra cómo usar ContentProvider con compatibilidad de paginación presentado en Android O. ContentProvider ahora acepta argumentos adicionales para offset y limit en el método de búsqueda a fin de admitir la paginación en lugar de recuperar todos los datos en una sola llamada de método de búsqueda.
En este ejemplo, se muestra cómo usar ContentProvider con compatibilidad de paginación presentado en Android O. ContentProvider ahora acepta argumentos adicionales para offset y limit en el método de búsqueda a fin de admitir la paginación en lugar de recuperar todos los datos en una sola llamada de método de búsqueda.
<img src="screenshots/icon-web.png" height="256" alt="Ícono de la app" /> En este ejemplo, se muestra cómo usar MediaStore de Android para ubicar y mostrar las imágenes de los usuarios en una RecyclerView.
Por medio del intent OPEN_DOCUMENT, una app cliente puede acceder a una lista de proveedores de documentos en el dispositivo y elegir un archivo en cualquiera de ellos.
En este ejemplo, se muestra cómo implementar un proveedor de documentos simple por medio del framework de acceso al almacenamiento disponible en Android 4.4.
Una aplicación de jardinería que ilustra las prácticas recomendadas de desarrollo de Android con Android Jetpack. Android Sunflower está en desarrollo actualmente. Ten en cuenta que algunos cambios (como las modificaciones del esquema de la base de datos) no son retrocompatibles y pueden hacer que la aplicación falle. En este caso, desinstala y vuelve a instalar la app.
<em>Si es la primera vez que realizas pruebas de unidades en Android, primero prueba con este ejemplo.</em> Este proyecto usa el sistema de compilación de Gradle y la compatibilidad con el complemento de Gradle para Android a fin de hacer pruebas de unidades. Puedes beneficiarte de las integraciones de IDE, como Android Studio, o ejecutar las pruebas en la línea de comandos. Las pruebas de unidades se ejecutan en una JVM local en tu máquina de desarrollo. El complemento de Gradle para Android compilará el código fuente de tu app y lo ejecutará mediante la tarea de prueba de Gradle. Las pruebas se ejecutan en relación con la versión modificada de android.jar, en la que se quitaron todos los modificadores finales. De esta manera, puedes usar bibliotecas de simulación populares, como Mockito. Para obtener más información, consulta http://tools.android.com/tech-docs/unit-testing-support
<em>Si es la primera vez que realizas pruebas de unidades en Android, primero prueba con este ejemplo.</em> Este proyecto usa el sistema de compilación de Gradle y la compatibilidad con el complemento de Gradle para Android a fin de hacer pruebas de unidades. Puedes beneficiarte de las integraciones de IDE, como Android Studio, o ejecutar las pruebas en la línea de comandos. Las pruebas de unidades se ejecutan en una JVM local en tu máquina de desarrollo. El complemento de Gradle para Android compilará el código fuente de tu app y lo ejecutará mediante la tarea de prueba de Gradle. Las pruebas se ejecutan en relación con la versión modificada de android.jar, en la que se quitaron todos los modificadores finales. De esta manera, puedes usar bibliotecas de simulación populares, como Mockito. Para obtener más información, consulta http://tools.android.com/tech-docs/unit-testing-support
Se trata de un cuestionario divertido que muestra material design en Android Introducción material design es un nuevo sistema para el diseño visual, de interacción y movimiento. La versión de Android de Topeka muestra que es posible utilizar los mismos principios de marca y material design para crear una experiencia consistente en las plataformas. En un comienzo, lanzamos la aplicación web de Topeka como ejemplo de código abierto de material design en la Web. El lanzamiento reciente de Topeka está disponible a los usuarios a partir del nivel 14 de la API, es decir, la biblioteca de compatibilidad de diseño, que cumple funciones importantes. Topeka también incluye un conjunto de pruebas Espresso que pueden ejecutarse con la tarea <code>connectedAndroidTest</code> de Gradle. Puedes obtener más información sobre el proyecto en el blog para desarrolladores de Android. Capturas de pantalla <img src="screenshots/categories.png" width="30%" /> <img src="screenshots/category_history.png" width="30%" /> <img src="screenshots/quiz_shakespeare.png" width="30%" /> Primeros pasos Clona este repositorio, ingresa al directorio de nivel superior y ejecuta <code>./gradlew tasks</code> a fin de obtener una descripción general de todas las tareas disponibles para este proyecto. Estas son algunas de las tareas más importantes: <code>bundleDebug: ensambla todas las compilaciones de depuración. installDebug: instala la compilación de depuración. connectedAndroidTest: instala y ejecuta las pruebas para la compilación de depuración en dispositivos conectados. test: ejecuta todas las pruebas de unidades. </code> Asistencia <li>Stack Overflow: http://stackoverflow.com/questions/tagged/android</li> Si encontraste un error en este ejemplo, infórmalo: https://github.com/googlesamples/android-topeka/issues Se fomenta el envío de parches. Para ello, bifurca este proyecto y envía una solicitud de extracción mediante GitHub. Licencia ``` Copyright 2015 Google, Inc. Licencia otorgada a la Apache Software Foundation (ASF) por medio de uno o más acuerdos de licencia para colaboradores. Consulta el archivo de AVISO distribuido con esta información para obtener datos adicionales sobre el propietario de los derechos de autor. La ASF te otorga la licencia de este archivo conforme a la licencia Apache, versión 2.0 (la "Licencia"). Este archivo solo se puede usar según lo estipulado en la Licencia. Puedes obtener una copia de la Licencia en http://www.apache.org/licenses/LICENSE-2.0 A menos que se acuerde lo contrario por escrito o que la ley así lo establezca, el software distribuido bajo la Licencia se distribuye de "LA MANERA EN QUE SE OFRECE", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, expresas o implícitas. En la Licencia, se pueden encontrar los permisos y las limitaciones relativos a cada idioma. ```
El modo envolvente, que se agregó en Android 4.4, mejora los modos para "ocultar la pantalla completa" y "ocultar la barra de navegación", ya que permite que los usuarios deslicen las barras para ocultarlas o mostrarlas. Este ejemplo permite que el usuario experimente con el modo envolvente, ya que puede comprobar cómo interactúa con otras marcas de IU relacionadas con apps de pantalla completa.
El ejemplo muestra cómo usar el modo envolvente para ocultar las barras de navegación y del sistema en el caso de las aplicaciones de pantalla completa.
Esta app básica muestra cómo recortar una vista con una interfaz ViewOutlineProvider (mediante la cual una vista compila su contorno) que se usa para recortes y sombreado.
Ejemplo que muestra las diferentes maneras de admitir el modo oscuro en Android. Usa la biblioteca de componentes de Material Design.
Este ejemplo contiene dos aplicaciones para Android distintas: DragSource y DropTarget. DragSource contiene imágenes y texto que se pueden colocar en la app DropTarget. Las imágenes se comparten entre las dos apps mediante un URI. Antes de usarlo, la app receptora deberá solicitar el permiso. También muestra el uso del DragStartHelper de la biblioteca de compatibilidad v13 para manejar fácilmente los eventos de arrastrar y soltar.
En este ejemplo, se muestra cómo mover una vista en el eje Z mediante <code>setTranslationZ()</code>. Este método se introdujo en el nivel de API 21 ("Lollipop").
En este ejemplo, se muestra una acción de arrastrar y soltar con distintas formas. "Elevation" y "z-translation" se usan para procesar las sombras y las vistas se recortan con distintos contornos.
El "modo envolvente" es una de las funciones que se agregaron en KitKat. Este modo le permite al usuario mostrar u ocultar la barra de estado y la de navegación con solo deslizar el dedo. Para probarlo, haz clic en el botón "activar o desactivar el modo envolvente" y, luego, desliza la barra a fin de ocultarla o mostrarla.
En este ejemplo, se ilustra cómo se puede agregar vínculos a una TextView. Esto se puede hacer automáticamente estableciendo la propiedad "autoLink" o bien de forma explícita.
En este ejemplo, se muestra cómo dibujar un fondo con esquinas <strong>redondeadas</strong> en un texto. Admite los siguientes casos: <li>Fijar el fondo en texto de <strong>una línea</strong></li> <img src="../TextRoundedBackgroundKotlin/screenshots/single.png" width. ="30%" /> <li>Fijar el fondo en texto de <strong>dos o más líneas</strong></li> <img src="../TextRoundedBackgroundKotlin/screenshots/multi.png" width="30%" /> <li>Fijar el fondo en texto <strong>con orientación de derecha a izquierda</strong></li> <img src="../TextRoundedBackgroundKotlin/screenshots/rtl.png" width="30%" />
En este ejemplo, se muestra cómo dar estilo a textos en Android por medio de intervalos, en Java.
En este ejemplo, se muestra cómo dar estilo a textos en Android por medio de intervalos, en Kotlin, usando Android KTX.
Esta aplicación muestra cómo funcionan las diversas implementaciones de Interpolator en la plataforma. Puedes modificar la duración de la animación, además de los parámetros de constructor de cualquiera de las variables de interpolación y usar los valores de la IU para informar cómo escribir el código que usa ese interpolador. Los cambios en los parámetros de la animación se reflejarán de forma dinámica en la curva azul y, cuando se ejecute la animación, esta aparecerá en acción (con los círculos rojos en la curva y en el área abierta de la parte inferior). Para usar: * Selecciona cualquiera de los interpoladores integrados de la lista desplegable de la parte superior. * Usa los controles deslizantes para cambiar la duración de la animación o cualquiera de los parámetros de las variables del interpolador seleccionado. * Para definir interpoladores cuadráticos y cúbicos para la trayectoria, arrastra los controladores verdes a fin de posicionar los puntos de control de la curva. * Haz clic en el botón "Ejecutar" a los efectos de ver la animación en acción. * Toma nota de los valores de duración y otros parámetros para usar en tu código de animación <img src="screenshot.png" alt="Captura de pantalla de InterolatorPlayground" "="" />
Este repositorio contiene una lista de diseños que muestra las diferentes funciones y el uso de MotionLayout
En este ejemplo, se muestra cómo usar la API de Multiventana disponible en Android N. Se detalla el uso de marcas de intents nuevos y propiedades de AndroidManifest para definir el comportamiento multiventana. Cambia la app de ejemplo al modo Multiventana para observar cómo afecta su ciclo de vida y comportamiento.
En este ejemplo, se muestra cómo usar la API de Multiventana disponible en Android N. Se detalla el uso de marcas de intents nuevos y propiedades de AndroidManifest para definir el comportamiento multiventana. Cambia la app de ejemplo al modo Multiventana para observar cómo afecta su ciclo de vida y comportamiento.
Esta aplicación muestra cómo usar la API de transiciones en la biblioteca de compatibilidad de Android. Si bien las transiciones funcionan en la plataforma desde el lanzamiento de KitKat (nivel de API 19), antes no había forma de usarlas en dispositivos que ejecutaran versiones anteriores. Ahora puedes usar la API de la biblioteca de compatibilidad a fin de ejecutar versiones de Android hasta Ice Cream Sandwich (nivel de API 14). Ten en cuenta que las API de la biblioteca de compatibilidad tienen las siguientes limitaciones, en comparación con las transiciones de las API de framework: <li>La API de la biblioteca de compatibilidad se ocupa, en particular, de las transiciones de vistas, al igual que la que ofrecimos en la versión de KitKat. Las capacidades posteriores, como las transiciones de actividades, dependen de las capacidades de la plataforma que no son compatibles con versiones anteriores.</li> <li>Las transiciones de KitKat ofrecen la capacidad de usar archivos de recursos XML para definir transiciones, escenas y gráficos de transición. Por otro lado, las transiciones de la biblioteca de compatibilidad solo permiten configurar transiciones desde el código. Esos archivos de recursos no están disponibles en la biblioteca de compatibilidad.</li> A fin de usar la aplicación de demostración de transiciones, haz lo siguiente: <li>Haz clic en uno de los botones para mover todo el grupo de ellos a la ubicación especificada en el texto del botón. Observa cómo se animan los botones en el lugar correcto (a través de la única llamada a TransitionManager.beginDelayedTransition()).</li> <li>Marca la casilla de verificación "Stagger" para indicar si las transiciones deben ejecutarse de manera escalonada, una tras otra. Cuando esto sucede, los botones se inician uno a la vez, creando un TransitionSet personalizado de transiciones secundarias con diferentes vistas de destino y startDelays.</li> <img src="TransitionsOnJbEmulator.png" alt="Captura de pantalla de transiciones" "="" /> Para obtener más información sobre las transiciones, consulta los siguientes recursos: <li>Versiones de la biblioteca de compatibilidad (usa la versión 24.2.0 o posteriores para la API de transiciones)</li> <li>Documentación de referencia de android.support.transitions</li> <li>Capacitación para desarrolladores en materia de transiciones</li>
En este ejemplo básico, se muestra cómo usar SwipeRefreshLayout para agregar el gesto de "deslizar para actualizar" a una vista, lo que brinda la posibilidad de activar una actualización al deslizar el dedo hacia abajo en la vista. En este ejemplo, la vista que puede actualizarse es una ListView.
En este ejemplo, se muestra cómo usar SwipeRefreshLayout para agregar el gesto de "deslizar para actualizar" a un diseño con varios campos secundarios, lo que brinda la posibilidad de activar una actualización deslizando el dedo hacia abajo en la vista visible. En este ejemplo, SwipeRefreshLayout contiene una GridView que se puede desplazar junto con una vista TextView vacía.
En este ejemplo, se muestra la forma de usar ViewPager2 con Views o Fragments como páginas, de realizar transformaciones de página, de vincular ViewPager2 con un TabLayout y de manejar las modificaciones de una colección de adaptadores de página subyacente. ViewPager2 reemplaza a ViewPager y soluciona la mayoría de los puntos débiles de su predecesor, incluidas la compatibilidad con diseños de derecha a izquierda, la orientación vertical y las colecciones de Fragment modificables. Ejemplos <li>ViewPager2 con Views: muestra cómo configurar un ViewPager2 con Views como páginas</li> <li>ViewPager2 con Fragments: muestra cómo configurar un ViewPager2 con Fragments como páginas</li> > <li>ViewPager2 con una colección mutable (Views): muestra el uso de ViewPager2 con Views como páginas y mutaciones en un adaptador de página</li> <li>ViewPager2 con una colección mutable (Fragments): muestra el uso de ViewPager2 con Fragments como páginas y mutaciones en un adaptador de página</li> <li>ViewPager2 con un TabLayout (Views): muestra cómo configurar un ViewPager2 con Views como páginas y vincularlo a un TabLayout</li>
En este ejemplo básico, se muestra cómo brindar compatibilidad con el modo ambiente en apps de Wear nativas.
En este ejemplo, se muestra cómo trabajar con un WearableListenerService para producir y usar DataEvents, y trabajar de manera efectiva con DataLayer.
En este ejemplo, se muestra cómo incluir compatibilidad con la accesibilidad en tu app para wearables.
El conjunto de pruebas de complicaciones es un grupo de proveedores de complicaciones que brindan datos ficticios y pueden usarse para probar distintos tipos de procesos de complicaciones en una pantalla de reloj.
El ejemplo muestra cómo puedes grabar la voz con el micrófono de un wearable y reproducir la voz grabada o un archivo mp3 si dicho dispositivo tiene una bocina integrada. Este ejemplo no posee una aplicación para teléfonos vinculados, por lo que debes instalarla directamente en tu reloj (por medio de "adb").
En este ejemplo, se muestran las prácticas recomendadas para comprobar si un dispositivo móvil conectado tiene tu app instalada desde una app independiente de Wear 2 (o versiones posteriores) y viceversa.
En el ejemplo de timbre de Android Things, se muestra cómo crear un timbre "inteligente". El ejemplo captura cuando un usuario presiona un botón, obtiene una imagen mediante la cámara periférica, procesa los datos de la imagen mediante la API de Cloud Vision de Google y sube la imagen, anotaciones de Cloud Vision y metadatos a una base de datos de Firebase donde una aplicación complementaria puede ver el contenido.
Ejemplos de controladores periféricos de Android Things ubicados en el repositorio de contribuciones.
En este ejemplo, se muestra cómo usar la API de Bluetooth de Android para el audio en una app de Android Things.
Esta aplicación muestra cómo acceder a la API de <code>BluetoothGattServer</code> de Android desde una aplicación de Android Things. La aplicación de ejemplo muestra el perfil de tiempo.
Esta aplicación muestra cómo acceder a la API de <code>BluetoothGattServer</code> de Android desde una aplicación de Android Things. La aplicación de ejemplo muestra el perfil de tiempo.
En este ejemplo de Android Things, se muestra cómo usar el botón de entrada UserDriver para registrar cambios del PIN GPIO, generar y observar eventos clave, y modificar el estado de un LED según corresponda. Sigue el codelab de E/S para periféricos para obtener instrucciones paso por paso sobre cómo crear un ejemplo similar.
Este ejemplo de Android Things muestra cómo usar el botón de entrada UserDriver para registrar cambios del PIN GPIO, generar y observar eventos clave, y modificar el estado de un LED según corresponda.
En este ejemplo, se muestra cómo llamar al servicio de Asistente de Google desde Android Things mediante gRPC. El servicio graba una solicitud por voz mediante los micrófonos conectados, la envía a la API de Asistente de Google y vuelve a reproducir la respuesta de voz de Asistente en la bocina conectada.
En este ejemplo, se muestra cómo usar LoWPAN para conectar varios dispositivos Android Things en la misma red y transmitir datos de forma inalámbrica. Se usan tres módulos que demuestran cómo buscar redes, transmitir datos y recibir datos. Para obtener más información sobre las redes LoWPAN, consulta la guía sobre API de LoWPAN.
Esta app de Android Things ejecuta código básico que utiliza las API de PIO nativas de C ++. Cada ejemplo es un módulo de Android que puede ejecutarse de manera independiente.
Esta app de Android Things ejecuta código básico que utiliza las API de E/S periférica. Cada ejemplo es un módulo de Android que puede ejecutarse de manera independiente.
Esta app de Android Things ejecuta código básico que utiliza las API de E/S periférica. Cada ejemplo es un módulo de Android que puede ejecutarse de manera independiente.
Esta utilidad expone el GPIO de un dispositivo Android Things como widgets interruptores en una IU gráfica. El usuario revisa el estado de la información entrante y hace clic en los interruptores para controlar el estado de la información saliente.
Esta utilidad expone el GPIO de un dispositivo Android Things como widgets interruptores en una IU gráfica. El usuario revisa el estado de la información entrante y hace clic en los interruptores para controlar el estado de la información saliente.
En este ejemplo, se muestra cómo ejecutar la inferencia de TensorFlow Lite en Android Things. Presiona un botón para capturar una imagen con la cámara y TensorFlow Lite te dirá qué es. Sigue el codelab del clasificador de imágenes para obtener instrucciones paso por paso sobre cómo crear un ejemplo similar.
En este ejemplo, se muestran operaciones de lectura y escritura de datos básicas en un UART. La aplicación crea una interfaz de bucle que inmediatamente repite cualquier dato leído del búfer receptor (RX) al de transmisión (TX).
En este ejemplo, se muestran operaciones de lectura y escritura de datos básicas en un UART. La aplicación crea una interfaz de bucle que inmediatamente repite cualquier dato leído del búfer receptor (RX) al de transmisión (TX).
Esta aplicación muestra la interacción con el servicio de actualización del dispositivo en Android Things a través de la API de <code>UpdateManager</code>. De forma predeterminada, el sistema busca nuevas actualizaciones de OTA cada algunas horas y las aplica automáticamente. En este ejemplo, se muestra cómo configurar la política de actualización para permitir que una aplicación tenga control sobre el proceso de actualización y supervise el progreso.
Esta aplicación muestra cómo acceder a la API de <code>UsbManager</code> de Android desde una aplicación de Android Things. La aplicación de ejemplo itera en todos los dispositivos USB que descubre el host y también imprime sus interfaces y puntos finales.
Esta aplicación muestra cómo acceder a la API de <code>UsbManager</code> de Android desde una aplicación de Android Things. La aplicación de ejemplo itera en todos los dispositivos USB que descubre el host y también imprime sus interfaces y puntos finales.
En este ejemplo, se muestra cómo implementar un hub de sensores en Android Things para recopilar datos de sensores de sensores conectados y publicarlos como eventos de telemetría en Google Cloud IoT Core.
Este ejemplo integra varios controladores periféricos de Android Things para compilar una estación meteorológica conectada.
Este ejemplo se archivó o dejó de estar disponible, por lo que es de solo lectura y ya no se mantiene de forma activa (se pueden encontrar más detalles sobre el archivado aquí). Para obtener otros ejemplos relacionados, consulta el nuevo repositorio de github.com/android/testing-samples. Gracias.
Esta app básica muestra cómo utilizar la API de estadísticas de uso de la app para permitir que los usuarios recopilen estadísticas relacionadas con el uso de las aplicaciones.
Es la versión de Android del catálogo de componentes de Material Design, diseñada para mostrar los principios de Material Design y proporcionar demostraciones de los componentes y ejemplos de código.