繁体   English   中英

使图像和文本在按钮内并排显示?

[英]Make image and text appear side by side within button?

我正在尝试一个按钮,其中的按钮内有一个小图标和文本,该图标位于按钮左侧,该如何将其移到更靠近居中文本的位置?

这是按钮的XML:

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/home_icon"
        android:text="BACK"
        android:id="@+id/button"
        android:width="160dp"
        android:height="70dp"
        android:textStyle="bold" />

不幸的是,不能使用drawableLeft属性。 此属性将图像定位到最左边的位置(无论您的文本在哪里)。

您需要为此创建自己的按钮:

<LinearLayout
    android:id="@+id/button"
    style="?android:attr/buttonStyle"
    android:layout_width="160dip"
    android:layout_height="70dip"
    android:gravity="center"
    android:orientation="horizontal" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/home_icon" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="BACK"
        android:textColor="@android:color/black" />
</LinearLayout>

您无法将其移近。 如果要使它们靠得更近,唯一的选择是建立自己的按钮:

<RelativeLayout
          android:id="@+id/rlButton"
          android:layout_width="match_parent"
          android:layout_height="match_parent">

    <TextView
            android:id="@+id/tvText"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:text="@string/button_text"/>

    <ImageView
            android:id="@+id/ivLeft"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/home_icon"
            android:layout_toLeftOf="@id/tvText"/>

</RelativeLayout>

您可以使用边距来控制TextViewImageView之间的距离。 您可以使用与按钮几乎相同的方法:

RelativeLayour rlButton = (RelativeLayout) view.findViewById(R.id.rlButton);
rlButton.setOnClickListener(new OnClickListener() {
    ....
});

但是,当然,您必须将按钮样式应用于RelativeLayout,以使其看起来与按钮相同。

<Button
 android:id="@+id/button1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:drawableLeft="@android:drawable/btn_star_big_on"
 android:text="Drawable left"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM