2

我需要在按钮的中心放置一个图像和字符串。需要在它们之间创造空间。你好(%1$d)

我的代码:

String textValue = getResources().getString(R.string.hello_text);
            final Spannable buttonLabel = new SpannableString(String.format(textValue, 2));
            //buttonLabel.setSpan(new ImageSpan(getApplicationContext(), R.drawable.hello_imagel,
                   // ImageSpan.ALIGN_BOTTOM), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            mButton.setText(buttonLabel);

我需要在图像和文本之间留出空格。我尝试在 strings.xml 中给出空格,但它不显示空格。添加下面的xml后,图像在左边,字符串在中间。我希望图像和字符串位于中心,图像和字符串之间的空格很少

xml:

android:layout_width="match_parent"
    android:layout_height="48dp"
    android:background="#2A2A2A"
    android:drawableLeft="@drawable/hello_image1"
    android:gravity="center"
4

2 回答 2

0

如果您不需要在字符串中显示图标,则可以将 drawable 添加到按钮。即文本左侧的图标:

<Button
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:drawableLeft="@drawable/icon"
     android:drawablePadding="20dp">

其中@drawable/icon 是您的图标,20dp 是图标和文本之间的填充

舒尔你可以从代码中做同样的事情 - 看看 setCompoundDrawables 和 setCompoundDrawablePadding

于 2014-06-18T13:40:58.810 回答
0

抱歉迟到了,我希望这个方法对你有帮助,在 kotlin 上:

fun setLeftIcon(roundButton: RoundButton, iconId: Int) = with(roundButton) {
  if (iconId == DEFAULT_IMAGE_ID) return
  val currentText = text.toString()
  // The spaces are a workaround to add some space between the image and the text
  val buttonLabel = SpannableString("   $currentText")
  buttonLabel.setSpan(
    ImageSpan(context, iconId),
    0,
    1,
    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
  )
  text = buttonLabel
}
于 2020-01-21T07:56:33.570 回答