Color uniforme de la interfaz de usuario en todos los dispositivos Android

He notado el color de la interfaz de usuario (por ejemplo, fondo de botones / color de texto) todos los cambios de dispositivo a dispositivo, en función del tema actual que se está utilizando en un dispositivo.

¿Cuál es la mejor práctica para aplicar colores personalizados de la interfaz de usuario para la aplicación de Android, de modo que tenga el mismo esquema de color para mi aplicación en todos los dispositivos Android. Puedo fijar el color del texto / del fondo en un artículo de la interfaz de usuario. Me pregunto si hay un solo lugar donde puedo definir todos los colores que anularán el tema actual aplicado en el teléfono.

Gracias.

Sí, hay un único lugar en el que puede definir estos valores para su aplicación. Consulte Estilos y temas en los documentos de Android para saber cómo funciona.

Un estilo es sólo una asignación de valores a nombres predefinidos. Si te encuentras repitiendo una serie de atributos comunes en tus diseños, puedes factorizar eso en un estilo. Por ejemplo, puede tener un estilo de botón especial que defina un color de fondo y de texto específico.

Un tema es una especie de meta-estilo. Se puede aplicar a una actividad o incluso a una aplicación completa a través de AndroidManifest.xml. Entre otras cosas, define los estilos predeterminados para widgets y valores que controlan otras partes de la apariencia de su interfaz de usuario.

Cuando está intentando combinarse con el sistema en una interfaz de usuario de otra forma personalizada para su aplicación, puede consultar el tema actual para los valores. Al igual que usas la sintaxis de @android:drawable/foo cuando te refieres a un recurso del sistema, puedes usar la sintaxis ?android:attr/foo cuando quieres usar el valor almacenado en el atributo del tema del sistema foo .

En su caso, si desea cambiar el color de texto principal de su aplicación, aplique un tema personalizado que establezca el atributo textColorPrimary . Si sólo desea estar seguro de que un elemento de su aplicación utiliza el color de texto principal definido por el dispositivo en el que se ejecuta su aplicación, puede establecer android:textColor="?android:attr/textColorPrimary" . Los mismos principios se aplican también en otros lugares.

Si desea ver qué atributos se utilizan en el sistema, se definen como parte del marco de Android en este archivo: frameworks / base / core / res / res / values ​​/ attrs.xml . Mire a los hijos del elemento XML <declare-styleable name="Theme"> en la parte superior. Para ver ejemplos de lo que el sistema establece, vea themes.xml en el mismo directorio. Por último, no todos estos atributos son públicos, los atributos no públicos no pueden ser definidos por una aplicación, sino detalles de implementación del framework de Android. Consulte public.xml para obtener la lista completa de los atributos disponibles para su uso en aplicaciones.

La mejor práctica es aplicar un tema personalizado a su aplicación y anular la mayor cantidad de propiedades predeterminadas que necesite.

Casi todo se puede cambiar, excepto

  • El Menu
  • Algunas propiedades de AlertDialog (se pueden cambiar usando un diálogo personalizado)
  • El sistema operativo ofrecía vistas como la barra de búsqueda rápida (QSB)

Si te gusta la apariencia de los recursos SDK predeterminados, puedes encontrarlos en sdk_folder/platforms/android-9/data/res/ (reemplazar 9 con la versión de SDK de la que quieres los recursos) – copiar los que quieras en tu aplicación Y hacer referencia a los mismos.

Puede echar un vistazo al tema que el SDK utiliza:

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