Android:在Button或ImageButton上结合文本和图像

我试图在按钮上放置一个图像(作为背景)并动态添加,具体取决于运行时发生的情况以及图像上方/上方的某些文本。

如果我使用ImageButton我甚至没有可能添加文本。 如果我使用Button我可以添加文本,但只能使用android:drawableBottom和此处定义的类似XML属性定义图像。

但是,这些属性仅将x和y维度的文本和图像组合在一起,这意味着我可以在文本周围绘制图像,但不能在文本下方/下方绘制图像(z轴定义为从显示屏中出来)。

有关如何做到这一点的任何建议? 一个想法是扩展ButtonImageButton并重写draw()方法。 但以我目前的知识水平,我并不知道如何去做(2D渲染)。 也许有更多经验的人知道一个解决方案或至少有一些指针要开始?


您可以调用Button上的setBackground()来设置Button的背景。

任何文字都会显示在背景上方。

如果您在xml中寻找类似的东西,可以使用: android:background属性,它的工作方式相同。


对于只想将背景,图标 - 图像和文本置于不同文件的一个 Button :设置在Button背景上,可绘制上/下/左/左和填充属性。

<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>

对于更复杂的安排,您也可以使用RelativeLayout并使其可点击。

教程:涵盖两种情况的大教程:http://izvornikod.com/Blog/tabid/82/EntryId/8/Creating-Android-button-with-image-and-text-using-relative-layout.aspx


这个问题有更好的解决方案。

只需要一个普通的Button并使用drawableLeftgravity属性。

<Button
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:drawableLeft="@drawable/my_btn_icon"
  android:gravity="left|center_vertical" />

这样你就可以得到一个按钮,它在按钮的左侧显示一个图标,在图标的右侧显示垂直居中的文本。

链接地址: http://www.djcxy.com/p/62167.html

上一篇: Android: combining text & image on a Button or ImageButton

下一篇: Save bitmap to location