2010-11-16 15 views
12

Ich habe Referenzen zum Einstellen der Systemfarben gesehen, aber ich muss herausfinden, wie Sie sie bekommen - wie finden Sie heraus, was sie sind?So erhalten Sie Android-Systemfarben

Auf dem Samsung Galaxy S beispielsweise werden die Registerkartenansichten, ListView hervorgehoben, wenn Sie ein Element auswählen, und die Textzeile Zusammenfassung auf dem Einstellungsbildschirm sind alle blau.

Es gibt viele Apps, die diesen Stil imitieren und ich möchte das gleiche tun. Offensichtlich kann ich die Farbe nicht einfach fest programmieren und die Farbe auf Blau einstellen, da andere Handgeräte unterschiedliche Farben verwenden.

Die Frage ist, gibt es eine Möglichkeit, programmgesteuert herauszufinden, welche Farbe der Voreinstellungs-Bildschirm Zusammenfassung Zeile, Tabs oder ListView Auswahlen sind, so dass Sie dann gegen eine TextView an anderer Stelle in Ihrer App festlegen können?

Wie bekomme ich die Android-Systemfarben?

+0

Es kann tatsächlich getan werden, obwohl es ein bisschen schwierig ist. Sehen Sie meine Antwort in diesem Thread: http://StackOverflow.com/Questions/4081946/android-preferences-summary-default-color – Carlos

Antwort

0

Sie können Farben auf Elemente in Ihrem XML-Layout geben Sie die @android:color Systemvariable:

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

Vielen Dank für Ihre Antwort. So stellen Sie eine Farbe ein (vorausgesetzt, Sie wissen, was es ist). Ich muss zuerst die Android Systemfarben herausfinden - Wie kann ich das machen? – Simon

+0

@Simon: Ich habe deine Frage missverstanden. Ich kann dir mit der Antwort auf diesen nicht helfen. Wenn ich du wäre, würde ich wahrscheinlich auch versuchen, die Frage zu klären, da es nicht alles offensichtlich war, was du verfolgst. – Nailuj

+0

Ich werde meine Frage zu klären - aber wie gesagt, ich bin nicht auf SET Farben, sondern zum Abrufen von Farben, Themen und Stile, so dass ich meine Apps und Textansichten "Standard" aussehen lassen kann. Ich denke an die "Preference" Bildschirme, wo es eine "Zusammenfassung" gibt. Es gibt viele Apps auf meinem Handy, die diese Farbe zu verwenden scheinen, aber wie finden Sie programmatisch heraus, was diese Farbe ist? – Simon

5

es eine Antwort auf diese Frage ist, aber es ist wahrscheinlich nicht die, die Sie hören wollten. Es gibt keine Möglichkeit, dies zuverlässig zu tun. Die "Auswahlfarbe" ist tatsächlich Teil eines Neun-Patch-Bildes, das auf einer plattformspezifischen Basis bereitgestellt wird. Einige verwenden die Standardfarbe Orange, manche (Sense) Grün und andere Rot. Mit einer erschöpfenden Liste dieser können Sie eine Zuordnung von Hardware zu Farbe erstellen, aber das ist nicht sehr effektiv, weil neue Hardware die ganze Zeit herauskommt, und einige dieser Telefone erlauben Sinn, deinstalliert zu werden.

Die einzige echte Sache, die Sie tun können, ist, Ihre Schaltflächen in der Anwendung selbst konsistent zu machen, was eine schwer genug Aufgabe ist. Wenn Sie wirklich ein benutzerdefiniertes Objekt mit einer Auswahlfarbe haben müssen (was häufig genug ist), wäre mein Ratschlag, die Schaltflächenressourcen von der Plattform Ihrer Wahl zu kopieren (ich mag die Standard-SDK-Ressourcen selbst) und diese dann manuell festzulegen während Ihrer Bewerbung. Auf diese Weise sehen sie immer gleich aus, egal auf welcher Plattform Sie sich befinden, und passen daher immer zu Ihren benutzerdefinierten Ansichten. Beachten Sie, dass dazu mehr als nur Schaltflächen erforderlich sind. Dialoge und Menüs müssen ebenfalls modifiziert werden, was möglich ist, aber schwer.

Wirklich dies ist ein Fehler in der Art, wie Android entworfen wurde, und es verursacht eine Menge von uns Trauer. Ich wünschte, ich hätte eine bessere Antwort für Sie, aber ich denke, das ist das Beste, was wir haben.