2010-09-10 11 views
5

Ich möchte eine Schaltfläche in meiner Android-App verwenden, aber ich möchte anpassen, wie es aussieht. Ich möchte jedoch, dass die Hervorhebung und die ausgewählten Farben der Schaltfläche den Standardfarben entsprechen (d. H. Die dunklen und hellorangen Farbverläufe oder was auch immer die Farbe des Themas liefert).Android: Verwenden Sie Standard-Highlight-Farben in einer benutzerdefinierten Schaltfläche

Gibt es auf jeden Fall die Standard-Hervorhebungen/ausgewählten Zeichenvorlagen und diese als Füllung für meine Schaltflächen in den ausgewählten und hervorgehobenen Zuständen zu verwenden?

Danke!

Antwort

3

Sie fragen nach zwei verschiedenen Dingen, wollen Sie die Zeichen oder den Farbcode?

Wie auch immer, können Sie den Namen der Drawables finden Sie hier: http://androiddrawableexplorer.appspot.com/ Ich weiß nicht, wenn man sie direkt aus der App verwenden können, oder wenn Sie sie speichern müssen, um Ihre Drawables ersten Ordner, aber man kann sie finden in deinem SDK. Wenn Sie die Farbcodes möchten, verwenden Sie Gimp, um sie aus den Bildern zu extrahieren.

+0

Ich denke, ich möchte den Farbcode, mit dem ich dann mein eigenes Zeichen erstellen kann? Grundsätzlich möchte ich sicherstellen, dass meine Hervorhebung/ausgewählte Farbe auf jedem Gerät immer konsistent ist. Daher möchte ich die orange Farbe nicht fest codieren, da sich das in Zukunft ändern könnte und einige Geräte eine andere Farbe haben. Vielmehr möchte ich den Farbcode programmatisch greifen. –

+0

Da Android Zeichensätze und keine Farbcodes für ihre Schaltflächen verwendet, ist es nicht möglich, den Farbcode auf programmatisch sinnvolle Weise zu erhalten. Nun, ich bin sicher, dass es irgendwie einen Weg gibt, aber ich denke nicht, dass es das wert ist. – softarn

+0

OK .. Gotcha .. so muss ich nur wissen, wie auf die Zeichnungsdatei, die die Standardauswahl/Hervorhebung Farben enthält zugreifen .... –

0

Selectors sind was Sie suchen. Google herum für Tutorials. Hier ist one.

Ich nehme an, dass Sie die Standardauswahl in der Android-Quellcode finden können.

+10

Gibt es eine Möglichkeit, die Standardauswahlfarbe programmgesteuert zu erfassen? –

3

Es scheint, dass Sie einen Selektor als Drawable innerhalb eines Selektors verwenden können! (Sie können oder sollten nicht verwenden @android:drawable/btn_default_selected, weil es privat ist) Dies bedeutet, dass Sie Ihre eigenen Selecter schreiben können und die gesamte Standard-Android-Selektor für die Elemente, die Sie für das Standardverhalten verwenden möchten.

benutzen ich diesen Selektor

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:drawable="@android:drawable/btn_default" android:state_pressed="true"/> 

</selector> 

Und fügte hinzu, es als Hintergrund zu einem linearen Layout. Ich weiß nicht, warum, aber die verwirrte die Polsterung/Marge als auch nach oben, das ist, warum ich sie

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background_linear_layout_button" 
    android:padding="0dp" 
    android:layout_margin="0dp" 
    android:orientation="vertical" > 

    <!-- YOUR LAYOUT THAT ACTS LIKE A BUTTON --> 
</LinearLayout> 

Das Ergebnis auf 0 gesetzt ist, dass Sie die übergeordnete Hintergrundfarbe im unverpressten Zustand haben und die Androide Hintergrundfarbe für den gedrückten Zustand.

Verwandte Themen