与图象,文本和颜色的按钮背景在机器人

时间:2015-04-09 20:29:21

标签: java android xml

我想在android中创建一个带有背景颜色,图标和文本的按钮。 但我不知道如何添加图像。我的XML是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="12dp"
    android:orientation="vertical" >

    <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/button"
            android:text="BOTON"
         />

    </TableLayout>
</LinearLayout>

我的背景:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item >
     <shape android:shape="rectangle"  >
         <corners android:radius="6dip" />
         <stroke android:width="1dip" android:color="#5e7974" />
         <gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92"  />  

     </shape>
 </item> 

</selector>

我想做一些这样的事情:

enter image description here

如何在我的背景按钮中添加背景图片和文字?我尝试使用属性android:drawableleft放置图标,但尺寸对于按钮的大小来说很小......

1 个答案:

答案 0 :(得分:1)

这实际上并不难。我只是为自己的项目做这件事。

Android Button在XML中有drawableLOCATION属性。

要将图像置于顶部,您可以根据需要使用

android:drawableTop="@drawable/your_drawable_icon"

所有四种可能的选择是:

android:drawableLeft
android:drawableRight
android:drawableBottom
android:drawableTop

要调整图像图标的间距/填充,可以使用

android:drawablePadding="12dp"

您可以阅读有关此here的更多信息。

如果这对您来说不够准确,您可以使用RelativeLayout并将内容放入其中以使其正确。

我必须为我当前的项目做到这一点。所以我没有按钮,而是使用了我的XML:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:id="@+id/applianceInfoLayout"
    android:clickable="true"
    android:background="@drawable/button_background" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:layout_centerVertical="true"
        android:layout_marginLeft="@dimen/service_menu_icon_padding"
        android:layout_marginRight="@dimen/service_menu_icon_padding"
        android:id="@+id/infoTextView"
        android:src="@drawable/ic_applianceinfo"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:layout_centerVertical="true"
        android:text="Info"
        android:textColor="#E6E7E8"
        android:fontFamily="sans-serif-light"
        android:textAllCaps="false"
        android:textSize="22sp"
        android:layout_toRightOf="@id/infoTextView"/>

</RelativeLayout>

这给了我这个: