我需要在按钮的中心放置一个图像和字符串。需要在它们之间创造空间。a Hello (%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"
如果你不需要在字符串中显示图标,你可以在按钮中添加drawable。例如,在文本的左侧有一个图标:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/icon"
android:drawablePadding="20dp">
其中@drawable/icon是你的图标,20dp是图标和文本之间的填充
当然你也可以在代码中做同样的事情——看看setCompoundDrawables和setCompoundDrawablePadding
抱歉来晚了,希望这个方法对你有帮助,是在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
}