首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextView与ImageSpan混淆线高

TextView与ImageSpan混淆线高
EN

Stack Overflow用户
提问于 2016-09-27 15:45:13
回答 1查看 2.3K关注 0票数 4

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

  • 如果图像是直线的最后一个对象,则下列线条的高度是正确的
  • 如果最后一个对象不是图像,则将下列线条的高度设置为包含图像的线条的高度

这里是正确的情况:

--这是错误的情况:

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

TextView只是一个非常基本的部分:

代码语言:javascript
复制
<TextView
    android:id="@+id/text_02"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="18dp"
    android:text="Text 02" />

( TextView位于ScrollView__中的LinearLayout中。)

我就是这样创建跨文本的:

代码语言:javascript
复制
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);

有人知道解决这个问题的办法吗?我宁愿不重新实现TextView的线条绘制方法.

EN

回答 1

Stack Overflow用户

发布于 2017-04-26 08:03:59

尝试将高度设置为要在ImageSpan中显示的可绘制的高度。例如:

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39729004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档