Zentrierung ToggleButton-Bild - Ohne Text
Hier ist mein ToggleButton
:
<ToggleButton
android:id="@+id/bSmenuTopItems"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:background="@drawable/master_button_selector"
android:drawableLeft="@drawable/flame_icon" />
Habe ich keinen text in diesem Bild, ich brauche ein ToggleButton
durch den Aktiven Zustand.
EDIT: ich glaube die Frage wurde falsch verstanden. Es ist ein drawable innerhalb der Toggle-Taste (flame_icon
) und es wird festgelegt, wie background
. Ich will, dass es zentriert. Es ist kein Text, nur ein Bild. Ich brauche einen Toggle-Button, weil ich einen Aktiven Zustand, wenn ausgewählt.
Gibt es nur drawableLeft
, drawableRight
, drawableTop
usw. Ich will eine draweableMiddle
scheint das nicht zu exisit.
- (1) warum Gewicht 50? gibt es eine Tonne von objectcs in dieser Zeile können Sie nicht verwenden Sie 1 für jede zu bedeuten gleiche Gewicht? (2) welche Art von layout? haben Sie versucht, layout_gravity statt nur die Schwerkraft? oder center_horizontal, wenn Ihr ein relative layout?
- Es ist ein
LinearLayout
. Aber warum würde sich das auf, was in derbutton
? - Ich dachte, Sie waren zentrieren Sie die Taste. Sie versuchen zu zentrieren das Bild in den button?
- ja, das ist genau das, was ich versuche. Polsterung scheint die einzige option für drawable
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überarbeitete ich die Antwort auf die Antwort auf Ihre überarbeitete Frage.
Den
drawableLeft
,drawableRight
, unddrawableTop
Schaltfläche, soweit ich das beurteilen kann, kontrollieren Sie, wo das Bild platziert wird, relativ zu dem Selektor (a/k/a on/off) - Anzeige. Oben legen Sie es über dem Symbol mit der linken und rechten Seite platzieren es eine bestimmte Seite beziehungsweise. Ich glaube nicht, dass Sie können entfernen Sie die selector-Indikator als würde Niederlage der Zweck der mit einemToggleButton
.Konnte ich Mitte 2 drawable in 2
ToggleButtons
mit dem folgenden layout. Um die Mitte der Bilder, die in denToggleButton
ich verwendetdrawableTop
so, dass die Bilder erschienen, über die Auswahl-Anzeige. Ich legen danntextOn
undtextOff
für einen leeren string. Wenn Sie nicht diesen, dann den Standard-on/off-text wird über den Selektor-Anzeige und schiebt den drawable zur Seite.Alle sollten Sie tun müssen ist, passen Sie die Höhe der Schaltfläche positionieren Sie Ihr Symbol relativ zu der Selektor-Symbol, wo Sie es wollen. Meine einzige andere Vorschlag wäre, die Größe des Bildes, das Sie verwenden. Wenn Sie können einfach passen Sie die Abmessungen des Bildes im Verhältnis zu der Schaltfläche, indem Sie es mit drawableTop center sollte es automatisch.
drawableCenter
XML-Attribut-ich glaube, weil die Positionierung bezieht sich auf Umschalten/Auswahl Indikator in der Taste. Sie konnte adjuste das Bild basierend auf der Größe des Bildschirms, wenn Sie waren besorgt über Methode 2. Mein Dritter Vorschlag ist nur die Verwendung einer regulären Taste, ändern Sie die Hintergrundfarbe oder das HintergrundbildonClick
zu geben einen hervorgehobenen Status und Art von erstellen Sie Ihre eigenen toggle-button ohne mit der eingebauten form.drawablePadding
.Hatte ich nicht viel Glück mit der akzeptierten Antwort, aber vielleicht ist mein Szenario ist etwas anders. Die andere Lösung, die ich gesehen habe ist die Verwendung der drawablePadding-Attribut, um die push-topDrawable auf die Mitte der Taste. Das funktioniert in einem Ausmaß, aber es wird davon ausgegangen, dass die Taste, die Abmessungen sind Fix und selbst dann ist es schwierig, um die Mitte der Ikone perfekt.
Dies ist, was ich kam mit statt. Don ' T geben Sie das Symbol auf der Schaltfläche selbst. Legen Sie stattdessen die Schaltfläche hintergrund, um eine layer-Liste drawable, das zeichnet das Symbol, das Sie wollen, über den Knopf, die Sie wollen, etwa so:
<item>
ist ein Selektor. Dem Status der Schaltfläche änderungen propagieren es.Benutzte ich die
android:drawableTop
wie beschrieben von Rarw, aber als mein Knopf war groß und breit, es hing einfach an der Spitze. Nicht wirklich mittig...also ich fummelte, um mit derpaddingTop
und es könnte hier zu arbeiten, was ich habe:Ich denke, es funktioniert für meine Zwecke
Vielleicht diese wird Ihnen helfen. Blick auf die Unterseite der Seite für die Lösung von
zapl.
P. S wusste nicht, wie der link zu der spezifischen Antwort, neu hier XD