Android: Düğme veya ImageButton üzerinde metin ve görüntüyü birleştirme

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 Butona koymak isteyen kullanıcılar için: Bir Button arka planına, drawableTop/Bottom/Rigth/Left ve padding niteliklerini ayarlayın.

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

Yorumlar (9)

Bu sorun için çok daha iyi bir çözüm var.

Sadece normal bir Button alın ve drawableLeft ve gravity niteliklerini kullanın.

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.

Yorumlar (9)
Çözüm

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.

Yorumlar (5)