2010-11-16 19 views
12

He visto referencias sobre cómo CONFIGURAR los colores del sistema, pero necesito averiguar cómo los OBTIENE. ¿Cómo se enteran de cuáles son?Cómo obtener los colores del sistema Android

En el Samsung Galaxy S, por ejemplo, las pestañas, ListView resalta cuando selecciona un elemento y la línea de texto Resumen en la pantalla de preferencias son todas azules.

Hay muchas aplicaciones que imitan este estilo y quiero hacer lo mismo. Obviamente, no puedo simplemente codificar y configurar el color en Azul, ya que otros teléfonos usan colores diferentes.

La pregunta es, ¿hay alguna manera de averiguar programáticamente qué color son las líneas de resumen de pantalla de preferencia, las pestañas o las selecciones de ListView, para que luego pueda establecer eso en un TextView en otra parte de la aplicación?

¿Cómo obtengo los colores del sistema Android?

+0

En realidad se puede hacer, aunque es un poco complicado. Ver mi respuesta en este hilo: http://stackoverflow.com/questions/4081946/android-preferences-summary-default-color – Carlos

Respuesta

0

Puede especificar los colores a los elementos en su diseño XML utilizando la variable @android:color sistema:

<TextView android:background="@android:color/white" android:textColor="@android:color/black" /> 
+0

Gracias por su respuesta. Así es como se establece un color (siempre que sepa de qué se trata). Necesito averiguar primero los colores del sistema Android. ¿Cómo puedo hacer eso? – Simon

+0

@Simon: He entendido mal tu pregunta. No puedo ayudarte con la respuesta a esta. Si yo fuera tú, probablemente también trataría de aclarar la pregunta, ya que no era muy obvio lo que estabas buscando. – Nailuj

+0

Editaré mi pregunta para aclararla, pero como ya he mencionado, no busco los colores SET, sino que OBTENGO colores, temas y estilos para poder hacer que mis aplicaciones y mis textos parezcan "estándar". Estoy pensando en las pantallas de "Preferencia" donde hay un "Resumen". Hay muchas aplicaciones en mi teléfono que parecen usar ese color, pero ¿cómo averiguas programáticamente qué es ese color? – Simon

5

Hay una respuesta a esta pregunta, pero probablemente no es el que quería escuchar. No hay forma de hacer esto de manera confiable. El "color de selección" es en realidad parte de una imagen de nueve parches, que se proporciona en una plataforma específica. Algunos usan el color naranja estándar, algunos (Sense) usan verde, y otros usan rojo. Con una lista exhaustiva de estos, es posible que pueda crear una asignación de hardware a color, pero esto no es muy efectivo porque siempre sale nuevo hardware, y algunos de estos teléfonos permiten que se desinstale el sentido.

Lo único real que puede hacer es hacer que sus botones sean coherentes con la aplicación en sí, lo que ya es una tarea bastante difícil. Si realmente tiene que tener un artículo personalizado con un color de selección (que es lo suficientemente común), mi consejo sería copiar los recursos del botón de la plataforma de su elección (me gustan los recursos sdk predeterminados) y luego configurarlos manualmente a lo largo de su aplicación. De esta forma, siempre se verán igual independientemente de la plataforma en la que se encuentre, por lo que siempre coincidirá con sus vistas personalizadas. Tenga en cuenta que esto requerirá que haga más que solo botones. Los cuadros de diálogo y los menús también deberán modificarse, lo cual es posible, pero difícil.

Realmente esta es una falla en la forma en que se diseñó Android, y nos causa mucha pena. Desearía tener una mejor respuesta para ti, pero creo que es lo mejor que tenemos.

Cuestiones relacionadas