我需要在按钮的中心放置一个图像和字符串。需要在它们之间创建空间。 你好(%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"
答案 0 :(得分:0)
如果您不需要在字符串中显示图标,则可以将drawable添加到按钮中。 即文本左侧的图标:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/icon"
android:drawablePadding="20dp">
其中@ drawable / icon是你的图标,20dp是图标和文字之间的填充
Shure你可以从代码中做同样的事情 - 看看setCompoundDrawables和setCompoundDrawablePadding
答案 1 :(得分:0)
对不起,我希望这种方法对您有帮助,
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
}