2010-11-16 23 views
12

Ho visto dei riferimenti su come impostare i colori di sistema, ma ho bisogno di scoprire come li ottieni - come fai a sapere quali sono?Come ottenere i colori di sistema Android

Sul Samsung Galaxy S, ad esempio, le visualizzazioni delle schede, evidenziare ListView quando si seleziona un elemento e la riga di testo Riepilogo nella schermata delle preferenze sono tutte blu.

Ci sono molte app che immettono questo stile e voglio fare lo stesso. Ovviamente non posso solo hardcoded e impostare il colore su Blue, poiché gli altri portatili usano colori diversi.

La domanda è: c'è un modo per scoprire a livello di codice di quale colore sono presenti le selezioni della riga di riepilogo della schermata delle preferenze, schede o ListView, in modo che sia possibile impostarlo su una TextView altrove nella propria app?

Come ottengo i colori del sistema Android?

+0

In realtà può essere fatto, anche se è un po 'complicato. Vedere la mia risposta in questa discussione: http://stackoverflow.com/questions/4081946/android-preferences-summary-default-color – Carlos

risposta

0

È possibile specificare i colori da elementi nel layout XML utilizzando la variabile di sistema @android:color:

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

Grazie per la risposta. È così che imposti un colore (a patto di sapere di cosa si tratta). Devo prima scoprire i colori del sistema Android: come posso farlo? – Simon

+0

@Simon: ho frainteso la tua domanda. Non posso aiutarti con la risposta a questo. Se fossi in te, probabilmente proverei anche a chiarire la domanda, poiché non era del tutto ovvio ciò che cercavi. – Nailuj

+0

Elaborerò la mia domanda per chiarire, ma come discusso, non cerco di impostare i colori, ma di ottenere colori, temi e stili in modo da rendere le mie app e le visualizzazioni di testo "standard". Sto pensando alle schermate "Preferenza" in cui è presente un "Riepilogo". Sul mio telefono ci sono molte app che sembrano usare quel colore, ma come fai a scoprire a livello di programmazione di che colore è? – Simon

5

C'è una risposta a questa domanda, ma non è probabilmente quello che volevi sentire. Non c'è modo di farlo in modo affidabile. Il "colore di selezione" è in realtà parte di un'immagine a nove patch, che viene fornita su una base specifica della piattaforma. Alcuni usano il colore arancione standard, altri (Sense) usano il verde e altri usano il rosso. Con un elenco esaustivo di questi è possibile creare una mappatura dall'hardware al colore, ma questo non è molto efficace perché il nuovo hardware esce continuamente e alcuni di questi telefoni consentono di disinstallare il senso.

L'unica cosa reale che puoi fare è rendere i pulsanti coerenti all'interno dell'applicazione stessa, che è un'attività abbastanza difficile da sola. Se davvero devi avere un oggetto personalizzato con un colore di selezione (che è abbastanza comune), allora il mio consiglio sarebbe quello di copiare le risorse del pulsante dalla piattaforma di tua scelta (mi piacciono le risorse sdk predefinite io stesso) e quindi impostarle manualmente per tutta la tua applicazione. In questo modo saranno sempre uguali a prescindere dalla piattaforma in cui ti trovi e quindi corrisponderanno sempre alle tue visualizzazioni personalizzate. Nota che questo richiederà di fare qualcosa di più dei semplici pulsanti. Anche i dialoghi e i menu dovranno essere modificati, il che è possibile, ma difficile.

In realtà questo è un difetto nel modo in cui è stato progettato Android, e causa molto dolore a noi. Vorrei avere una risposta migliore per te, ma penso che questo sia il migliore che abbiamo.

Problemi correlati