Android: kombinácia textu & obrázok na tlačidlo alebo ImageButton

Snažím sa mať obrázok (ako pozadie) na tlačidle a dynamicky pridávať text nad/nad obrázok v závislosti od toho, čo sa deje počas behu.

Ak použijem ImageButton, nemám ani možnosť pridať text. Ak použijem Button, môžem pridať text, ale iba definovať obrázok pomocou android:drawableBottom a podobných atribútov XML, ako sú definované tu.

Tieto atribúty však kombinujú iba text & obrázok v rozmeroch x a y, čo znamená, že môžem nakresliť obrázok okolo môjho textu, ale nie pod/pod môj text (pričom os z je definovaná ako vychádzajúca zo zobrazenia).

Nejaké návrhy, ako to urobiť? Jedným z nápadov by bolo buď rozšíriť Button alebo ImageButton a prepísať metódu draw(). Ale s mojou súčasnou úrovňou vedomostí naozaj neviem, ako to urobiť (2D vykresľovanie). Možno niekto skúsenejší pozná riešenie alebo aspoň nejaké tipy na začiatok?

Pre používateľov, ktorí chcú len vložiť pozadie, ikonu-obrázok a text do jedného tlačidla z rôznych súborov: Nastavte na pozadí Button, drawableTop/Bottom/Rigth/Left a padding atribúty.

Pre sofistikovanejšie usporiadanie môžete tiež použiť RelativeLayout a urobiť ho klikateľným.

Tutoriál: Skvelý tutoriál, ktorý pokrýva oba prípady: http://izvornikod.com/Blog/tabid/82/EntryId/8/Creating-Android-button-with-image-and-text-using-relative-layout.aspx

Komentáre (9)

Na tento problém existuje oveľa lepšie riešenie.

Stačí vziať normálne tlačidlo Button a použiť atribúty drawableLeft a gravity.

Takto získate tlačidlo, ktoré zobrazuje ikonu v ľavej časti tlačidla a text na pravej strane ikony vertikálne vycentrovaný.

Komentáre (9)
Riešenie

Môžete zavolať setBackground() na Button na nastavenie pozadia tlačidla.

Akýkoľvek text sa zobrazí nad pozadím.

Ak hľadáte niečo podobné v xml, existuje: android:background atribút, ktorý funguje rovnako.

Komentáre (5)