Bir düğme üzerinde bir resim (arka plan olarak) bulundurmaya ve çalışma zamanı sırasında ne olduğuna bağlı olarak, resmin üzerine / üzerine dinamik olarak bazı metinler eklemeye çalışıyorum.
Eğer ImageButton
kullanırsam metin ekleme imkanım bile yok.
Eğer Button
kullanırsam metin ekleyebilirim ama sadece android:drawableBottom
ve burada tanımlandığı gibi benzer XML nitelikleri ile bir görüntü tanımlayabilirim.
Ancak bu nitelikler yalnızca metin ve görüntüyü x ve y boyutlarında birleştirir; yani metnimin etrafına bir görüntü çizebilirim, ancak metnimin altına/üstüne çizemem (z ekseni ekrandan çıkacak şekilde tanımlanır).
Bunun nasıl yapılacağına dair bir öneriniz var mı? Bir fikir Button
ya da ImageButton
metodunu genişletmek ve draw()
metodunu geçersiz kılmak olabilir. Ancak şu anki bilgi seviyemle bunu nasıl yapacağımı gerçekten bilmiyorum (2D render). Belki daha deneyimli birileri bir çözüm biliyordur ya da en azından başlamak için bazı ipuçları?
Sadece Arka Plan, Simge-Görüntü ve Metni farklı dosyalardan tek bir Buton
a koymak isteyen kullanıcılar için: Bir Button
arka planına, drawableTop/Bottom/Rigth/Left ve padding niteliklerini ayarlayın.
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/home_btn_test"
android:drawableTop="@drawable/home_icon_test"
android:textColor="#FFFFFF"
android:id="@+id/ButtonTest"
android:paddingTop="32sp"
android:drawablePadding="-15sp"
android:text="this is text"></Button>
Daha sofistike bir düzenleme için RelativeLayout
kullanabilir ve tıklanabilir hale getirebilirsiniz.
Öğretici: Her iki durumu da kapsayan harika bir öğretici: http://izvornikod.com/Blog/tabid/82/EntryId/8/Creating-Android-button-with-image-and-text-using-relative-layout.aspx
Bu sorun için çok daha iyi bir çözüm var.
Sadece normal bir Button
alın ve drawableLeft
ve gravity
niteliklerini kullanın.
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/my_btn_icon"
android:gravity="left|center_vertical" />
Bu şekilde, düğmenin sol tarafında bir simge ve simgenin sağ tarafında dikey ortalanmış metin görüntüleyen bir düğme elde edersiniz.
Düğmenin arka planını ayarlamak için setBackground()
öğesini bir Button
üzerinde çağırabilirsiniz.
Herhangi bir metin arka planın üzerinde görünecektir.
Eğer xml'de benzer bir şey arıyorsanız, var:
android:background
özelliği de aynı şekilde çalışır.