我有ImageSpan一段文字.我注意到的是,周围的文本总是在文本行的底部绘制 - 更准确地说,文本行的大小随着图像的增长而增加,但文本的基线不会向上移动.当图像明显大于文本大小时,效果相当难看.
这是一个示例,大纲显示的界限TextView:

我试图让周围的文本相对于正在显示的图像垂直居中.以下是蓝色文本显示所需位置的相同示例:

以下是我受约束的约束:
我已尝试android:gravity="center_vertical"在TextView上使用该属性,但这没有任何效果.我认为这只是文本行的垂直居中,但在文本行中,文本仍然在底部绘制.
我目前的思路是创建一个自定义跨度,根据行的高度和当前文本大小来移动文本的基线.这个跨度将包含整个文本,我将不得不计算与ImageSpans 的交集,所以我也可以避免移动图像.这听起来相当令人生畏,我希望有人能提出另一种方法.
任何和所有的帮助表示赞赏!
这是我的Snackbar代码:
Snackbar.make(viewHolder.productView, "Some Text Here ..", Snackbar.LENGTH_SHORT)
.setAction("I want be a icon here instead TEXT", new View.OnClickListener() {
@Override
public void onClick(View v) {
// Perform anything for the action selected
}
})
.show();
Run Code Online (Sandbox Code Playgroud)
反正有没有添加图标而不是文字.setAction?
我知道谷歌建议不要在Snackbar中使用图标,但我想使用它.
我正在开发一个聊天应用程序.对于表情符号,我使用了图像按钮.但问题是我不知道如何在聊天消息之后将表情符号插入文本控件,类似于:

如何通过代码完成?请指导我.