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
Na tento problém existuje oveľa lepšie riešenie.
Stačí vziať normálne tlačidlo
Button
a použiť atribútydrawableLeft
agravity
.Takto získate tlačidlo, ktoré zobrazuje ikonu v ľavej časti tlačidla a text na pravej strane ikony vertikálne vycentrovaný.
Môžete zavolať
setBackground()
naButton
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.