当前位置: 首页 > 知识库问答 >
问题:

带有ImageSpan的TextView会导致行高混乱

扶文光
2023-03-14

我有一个TextView填充了应该包含一些ImageSpan对象的文本。图像可能比正常线高,这会导致以下问题:

  • 如果图像是一行的最后一个对象,则以下行的高度正确
  • 如果最后一个对象不是图像,则以下行的高度设置为包含图像的行的高度

更有趣的是,如果文本中有一个新的行字符,那么从那一点开始,行的高度也是好的。

TextView只是一个非常基本的:

<TextView
    android:id="@+id/text_02"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="18dp"
    android:text="Text 02" />

(TextView位于LinearLayout中,后者位于ScrollView中。)

TextView textView02 = (TextView) findViewById(R.id.text_02);

SpannableString string = new SpannableString(LOREM_IPSUM);
string.setSpan(new ImageSpan(this, R.mipmap.ic_launcher), 102, 103, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
string.setSpan(new ImageSpan(this, R.mipmap.ic_launcher), 105, 106, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
string.setSpan(new ImageSpan(this, R.mipmap.ic_launcher), 108, 109, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

textView02.setText(string);

共有1个答案

上官德寿
2023-03-14

尝试为要用ImageSpan显示的drawable设置一个高度。例如如下所示:

Drawable vegetary = mContext.getResources().getDrawable(R.drawable.ic_best_veget);
    vegetary.setBounds(0, 0, vegetary.getIntrinsicWidth(), <yourHeight>);
    ssb.setSpan(new ImageSpan(vegetary, ImageSpan.ALIGN_BASELINE), ssb.length()-1, ssb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
 类似资料:
  • 问题内容: 我想我发现了一个错误。也许不是,但是Super CSV不能很好地处理。 我正在使用MapReader解析具有41列的CSV文件。但是,我得到的是CSV- 而使我获得CSV的Web服务错了一行。“标题”行是制表符分隔的行,具有41个单元格。 而且“错误的行”是一个由制表符分隔的行,其中包含36个单元格,其内容没有任何意义。 这是我正在使用的代码: 我在上面提到的行中执行mapReader

  • 我正在用元素动态填充多行TextView。输入的元素行是可包装的。每个元素由两部分组成:一个文本后跟一个图像。图像的长度为2个字符。元素之间用空格隔开。对于添加元素,我使用SpannableStringBuilder。除了一件事,一切都很好。当添加到下一行的新元素(TextView包装该行)时,上一行的最后一个元素的图像将消失,而不管该行上还有多少可用空间。如果我移除新行上新添加的元素,该图像将再

  • 我正在尝试将PSK与mbedtls库与SGX结合使用。没有PSK,连接工作正常。 以下是相关的客户端代码: 我有openssl测试服务器运行: 服务器接收连接并交换PSK消息,但是在解密点我收到以下错误: 我还尝试将更改为不同的密码,但仍然是相同的错误。当完全省略密码时,连接正常,但没有执行PSK!?

  • 根据Android版本/设备品牌,文件浏览器打开,我得到以下结果: 从中选择文件: 从<code>Fotos</code>中选择文件: 从<code>FileCommander</code>中选择文件: 我可以打开所有这些文件,除非我尝试从< code >下载、、< code >音频、< code>Afbeeldingen(图像)中打开文件 很可能我无法处理这种Uri: 我尝试了以下方法: > 尝

  • 问题内容: 我在名为bot4CA.py的模块上使用cProfile,因此在控制台中键入: 模块运行并退出后,它将创建一个名为Thing.txt的文件,当我打开它时,那里有一些信息,其余的是一堆字符,而不是我想要的整齐的数据文件。有没有人知道如何使用cProfile并最终得到整齐有序的数据表,就像在命令行中正常使用时一样(除了在文件中)?这是.txt文件中某些数据的示例: 我真正想要的是,当您调用c