Por lo menos, la sección de tu Android de Android es una gran manera de mantener a tu audiencia feliz Oreo despliegue!)
En este tutorial, te mostraré cómo implementar las nuevas funciones de Android 8.0 en tus propios proyectos de Android. Al final de este tutorial, sabrás cómo:
- Cree vistas de texto que puedan auto dimensionar sus contenidos automáticamente para adaptarse mejor al diseño actual.
- Use fuentes personalizadas en su aplicación sin aumentar el tamaño de su APK.
- Ofrezca accesos directos al contenido más importante de su aplicación, que luego puede anclar a su pantalla de inicio.
- Cree múltiples canales de notificación que tengan su propio comportamiento único.
- Actualice el ícono de su aplicación para que sea compatible con la nueva función de máscara de ícono adaptable.
Prepara tu entorno de desarrollo.
Antes de que pueda implementar cualquier característica de Android 8.0, debe asegurarse de que su entorno de desarrollo esté actualizado. Para obtener los mejores resultados, debe utilizar Android Studio 3.0 o superior, que actualmente significa la versión beta de Android Studio 3.0.
A continuación, abra el Administrador de SDK de Android y asegúrese de tener instalado lo siguiente:
- El Android O SDK.
- Herramientas de compilación SDK 26.0.1 o superior.
- Herramientas de plataforma SDK 26.0.0 o superior.
- Emulador de Android 26.1.4 o superior.
- Biblioteca de soporte de Android 26.0.2 o superior.
Para ayudar a mantener las cosas simples, lo agregaré a mi proyecto Android 8.0, así que cree un nuevo proyecto usando la plantilla 'Actividad vacía' y establezca el SDK de destino en Android O (API 26),
Antes de que pueda actualizar su archivo build.gradle, y luego cambiar su compileSdkVersion y targetSdkVersion a 26, y su buildToolsVersion a 26.0.0.
Autosize TextViews
La función TextViews de tamaño automático de Android Oreo está diseñada para ayudarlo a combatir uno de los mayores desafíos para el desarrollo de Android: crear una interfaz de usuario única (IU) que sea lo suficientemente flexible para manejar su aplicación.
Las vistas automáticas de TextViews pueden cambiar el tamaño de su texto para adaptarse mejor al diseño actual; Cuando TextView tiene una gran cantidad de texto para mostrar en un área grande, puede escalar texto hacia abajo en lugar de cortarlo a la mitad de la oración.
Cuando selecciona la plantilla 'Actividad vacía', Android Studio genera un TextView 'Hello World' de manera predeterminada, así que veamos las dos formas diferentes que podemos agregar a este TextView.
1. Granularidad
La granularidad es donde puede definir el texto más grande que puede ser (autoSizeMaxTextSize), el más pequeño que puede ser (autoSizeMinTextSize), y el incremento de escala (android: autoSizeStepGranularity).
En el siguiente código, el texto escala entre 20 píxeles independientes de la escala (sp) y 50p, en incrementos de 5sp. Así que estamos agregando la línea android: autoSizeTextType = "uniforme", que es algo que deberá agregar a cada TextView en el que desee usar el autoajuste:
2. Tamaños preestablecidos
Si desea crear una matriz de valores sp exactos; su TextView quiere seleccionar el tamaño de texto más apropiado de estos valores disponibles.
Si su proyecto aún no contiene un archivo de arrays, deberá crear uno:
- Control-clic en el archivo 'Valores' de su proyecto.
- Seleccione 'Nuevo> Archivo de recursos de valores' '.
- Asigne a este archivo el nombre de "arreglos" y luego haga clic en "Aceptar".
Abra su archivo res / values / arrays y defina los valores que desea usar:
15sp 20sp 35sp 36p 37p 38p 39p 50sp
Solo necesita hacer referencia a esta matriz utilizando autoSizePresetSizes, y no se olvide de agregar esa importante línea de android: autoSizeTextType.
Fuentes personalizables descargables
En Android 8.0, las fuentes personalizadas ahora son un tipo de recurso totalmente compatible, lo que es una buena noticia si usas regularmente fuentes personalizadas para agregar personalidad adicional a tu aplicación o para enfatizar texto importante.
Hay dos formas de agregar una fuente personalizada a sus aplicaciones: importar el archivo .ttf de la fuente a su proyecto. Si opta por este último, solicitará la fuente personalizada del proveedor de fuentes. Esto significa que puedes usar fuentes personalizadas sin aumentar el tamaño de tu APK.
Si está buscando un proveedor de fuentes, las Fuentes de Google parecen ser actualmente la mejor opción.
Veamos una de las fuentes de Google en nuestro TextView 'Hello World':
- Abra el archivo activity_main.xml de su proyecto y seleccione la pestaña 'Diseño'.
- Seleccione la vista de texto 'Hello World', y el menú Propiedades debería estar abierto junto al lado izquierdo de la ventana de Android Studio.
- Desplácese hasta el encabezado Apariencia del texto, abra el menú desplegable 'FontFamily' y seleccione 'Más fuentes ...'
- En la siguiente ventana de "Recursos", abra el menú desplegable "Fuente" y seleccione "Fuentes de Google".
- Navegue por la lista de fuentes 'descargables' hasta que encuentre la fuente que desea usar; puede obtener una vista previa de cualquier fuente seleccionándola en el menú de la izquierda.
- Cinzel está disponible en Regular, Bold o Black.
- En este punto, puede elegir 'Crear una fuente descargable' o 'Agregar fuente al proyecto'. Si desea utilizar un proveedor de fuentes, seleccione 'Crear una fuente descargable'. Para agregar la fuente a su APK, seleccione 'Agregar fuente al proyecto', aunque esto aumentará el tamaño de su APK. Haga su selección, luego haga clic en 'Aceptar'.
- Si seleccionó 'Crear una fuente descargable', abra la carpeta res / font de su proyecto y verá que Android Studio ha generado un archivo XML que contiene todo el código que necesita su aplicación.
- Aplicas esta fuente a tu TextView, usando android: fontFamily = "@ font / name-your-your-font" por ejemplo:
Atajos fijados
Los accesos directos anclados son una forma de proporcionar un acceso fácil al contenido y la funcionalidad más importantes de su aplicación, a través de un acceso directo que pueden colocar en su pantalla de inicio.
Si desea que su aplicación ofrezca uno o más accesos directos anclados, debe comenzar por verificar que el lanzador predeterminado del usuario realmente admita accesos directos anclados:
// Crear una instancia de ShortcutManager // ShortcutManager myShortcutManager = getSystemService (ShortcutManager.class); if (myShortcutManager.isRequestPinShortcutSupported ()) {
Si el ShortcutManager devuelve VERDADERO, el siguiente paso es crear un objeto ShortcutInfo que defina las propiedades del acceso directo que desea crear:
- El ID de cadena único del acceso directo.
- Una etiqueta corta, que será visible cuando el acceso directo esté anclado al iniciador. Este menú es limitado, por lo que debe limitar la etiqueta corta a 10 caracteres o menos.
- Una etiqueta larga, que es visible cuando el usuario abre la lista de accesos directos. Deberías limitar esto a 25 caracteres.
- Una intención, que es la acción que sucederá cuando el usuario toque este atajo.
- Un icono, que representará su acceso directo anclado en el iniciador del usuario.
// Definir el ID de cadena del acceso directo // ShortcutInfo pinShortcutInfo = ShortcutInfo.Builder (contexto, "shortcut-Id"); // Establecer la etiqueta corta // .setShortLabel (getString (R.string.short_label)) // Establecer la etiqueta larga // .setLongLabel (getString (R.string.long_label)) // Definir la acción que desea este atajo para realizar // .setIntent (nuevo Intent (Intent.ACTION_DIAL, mostFrequentContact)) // Establezca el icono // .setIcon (Icon.createWithResource (context, R.mipmap.ic_contactProfile)) .build ();
Usted fija su acceso directo a la pantalla de inicio del usuario, implementando requestPinShortcut (). Aquí, estoy seguro de que esta aplicación recibirá una notificación cuando esto suceda, creando un PendingIntent:
Intención pinnedShortcutCallbackIntent = createShortcutResultIntent (pinShortcutInfo); PendingIntent resultPendingIntent = PendingIntent.createBroadcast (context, 0, pinnedShortcutCallbackIntent); mShortcutManager.requestPinShortcut (pinShortcutInfo, resultPendingIntent.getIntentSender ());
Una vez que haya creado un pin, puede actualizar su contenido usando updateShortcuts ().
Iconos adaptativos
Los íconos adaptativos son el último intento de Google de darle una forma consistente a los íconos de las aplicaciones. En Android 8.0, la búsqueda de fabricantes de equipos originales (OEM) de Samsung y HTC puede proporcionar una máscara, que se aplicará a todos los íconos del dispositivo. Si su aplicación no es compatible con la característica de iconos adaptativos y termina en un dispositivo que usa una máscara, entonces su aplicación se destacará, ¡y no de la mejor manera!
Un icono adaptable representado consta de tres capas: una máscara, que es proporcionada por el OEM, y una capa de fondo y primer plano, que es proporcionada por el desarrollador.
API 26, entonces debería tener un archivo res / mipmap-anydpi-v26 / ic_launcher.xml, que contiene todo el código que necesita para especificar qué recurso desea usar como fondo de su icono adaptativo y capas de primer plano:
Si está trabajando con un proyecto pre-Android 8.0, deberá crear el directorio res / mipmap-anydpi-v26 y el archivo ic_launcher.xml manualmente, aunque aún puede usar el bloque de código anterior.
Para crear un icono adaptativo, solo necesita reemplazar drawable / ic_launcher_background y mipmap / ic_launcher_foreground, con sus propios recursos.
108 × 108 ppp, aunque solo aparecerán los 72 x 72 ppp internos dentro de la máscara. Por lo tanto, el sistema reserva los 18 ppp externos para las animaciones que el dispositivo interactúa con los íconos de la aplicación, como paralaje o pulsos, ¡así que ten esto en cuenta al diseñar tus capas!
Una vez que haya creado su (s) dibujo (s), puede usar Asset Studio para crear su ícono adaptable:
- Presione la tecla 'res' de su proyecto y seleccione 'Nuevo> Activo de imagen'.
- Abra el menú desplegable 'Tipo de icono' y seleccione 'Iconos del iniciador (adaptativo y heredado)'.
- Seleccione la pestaña 'Capa de primer plano'.
- Seleccione la casilla de verificación 'Imagen'.
- Haga clic en el pequeño icono punteado que aparece a la derecha del campo 'Ruta' (donde el cursor se coloca en la siguiente captura de pantalla).
- Seleccione la imagen que desea usar como capa de primer plano y haga clic en 'Aceptar'. Asset Studio desea obtener una vista previa de cómo aparecerá esta imagen cuando se renderice con varias máscaras.
- Seleccione la pestaña 'Capa de fondo'.
- Si está utilizando una imagen como capa de fondo, seleccione la casilla de verificación 'Imagen' y repita los pasos anteriores. Si desea utilizar un color en su lugar, seleccione la casilla de verificación 'Color', haga clic en el campo que muestra el código hexadecimal y realice su selección en el selector de color.
- Haga clic en 'Siguiente'.
- En este punto, Android Studio desea mostrar información sobre los recursos que está a punto de sobrescribir. Si estás contento de continuar, haz clic en "Finalizar".
- Si está utilizando una versión preliminar o Beta de Android Studio 3.0, es posible que Asset Studio no actualice su código para usar nuevos recursos disponibles, así que verifique el contenido de su directorio mipmap-anydpi-v26 / ic_launcher.xml, y hacer los ajustes necesarios.
Canales de notificación
Los canales de notificación le permiten agrupar notificaciones relacionadas en canales dedicados y luego definir un comportamiento diferente para cada uno de estos canales. Si su aplicación apunta al nivel de API 26, entonces los canales de notificaciones son obligatorios . Sin embargo, para una ID en particular, deberá crear un canal para cada uno de ellos. la aplicación crea y luego asigna diferentes patrones de vibración, sonidos de alerta y niveles de importancia (en Oreo ya no puede ser un nivel de prioridad para notificaciones individuales). Sin embargo, el usuario puede modificar las características de un canal, por lo que no hay garantía de que su canal tenga la configuración exacta para siempre.
Usted crea un canal de notificación, completando los siguientes pasos:
importar android.app.Notification; importar android.app.NotificationChannel; importar android.app.NotificationManager; ... ... ... NotificationManager notificationManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); // Defina el ID del canal // String channelId = "my_notification_channel"; // Defina el nombre visible del usuario del canal // CharSequence channelName = getString (R.string.channel_name); // establece el nivel de prioridad del canal // int channelImportance = NotificationManager.IMPORTANCE_HIGH; NotificationChannel notificationChannel = nuevo NotificationChannel (channelId, channelName, channelImportance); // Defina las características iniciales de su canal de notificación // notificationChannel.enableLights (true); notificationChannel.setLightColor (Color.GREEN); // Enviar el objeto del canal de notificación al administrador de notificaciones // notificationManager.createNotificationChannel (notificationChannel);
Cuando creas una notificación, especificas el canal al que pertenece esta notificación, usando setChannelId ():
String channelId = "my_notification_channel"; NotificationCompat.Builder mBuilder = nuevo NotificationCompat.Builder (this) .setContentTitle ("Notification") .setSmallIcon (R.drawable.notification_icon) .setContentText ("¡Has sido notificado!") // Asigna esta notificación al canal que creamos anteriormente // .setChannelId (channelId); .build ();
Concluyendo
En este tutorial, trabajaremos sobre cómo implementar TextViews, fuentes descargables, accesos directos anclados, iconos adaptables y canales de notificación.
¿Has comenzado a actualizar tus aplicaciones para que sean compatibles con Android Oreo? Y si es así, ¿cuál es tu característica favorita de la versión 8.0? Háganos saber en los comentarios a continuación!