Android 文本大小和线条空间如何影响ImageSpan

Android 文本大小和线条空间如何影响ImageSpan,android,imagespan,staticlayout,Android,Imagespan,Staticlayout,我想用StaticLayout测量ImageSpan。为此,我使用以下简单代码: SpannableStringBuilder content = new SpannableStringBuilder(); Spannable imageSpannable = getImageSpannable(); content.append(imageSpannable); StaticLayout layout = new StaticLayout(content, txt.getPaint(), t

我想用StaticLayout测量ImageSpan。为此,我使用以下简单代码:

SpannableStringBuilder content = new SpannableStringBuilder();
Spannable imageSpannable = getImageSpannable();
content.append(imageSpannable);

StaticLayout layout = new StaticLayout(content, txt.getPaint(), txt.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1, lineSpace, false);
txt是一个文本视图,lineSpace只是一个指示txt行空间的变量

和GetImageSpanable:

private Spannable getImageSpannable() {
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.some_image);

    Drawable drawable = new BitmapDrawable(getResources(), bitmap);
    drawable.setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight());

    Spannable imageSpannable = new SpannableString("\uFFFC");
    ImageSpan imgSpan = new ImageSpan(drawable, DynamicDrawableSpan.ALIGN_BOTTOM);

    imageSpannable.setSpan(imgSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    return imageSpannable;
}
当我将ImageSpan添加到SpannableStringBuilder(而不是其他)时,TextSize似乎不会影响ImageSpan。我的意思是,当我调用layout.getLineBottom(0)时,无论TextSize是什么,它总是返回相同的值。但行空间会影响

但当我在ImageSpan之后添加“\n”和另一个字符串(如“sample”)到SpannableStringBuilder时,TextSize也会影响ImageSpan的高度。在这种情况下,ImageSpan的上边距等于:(lineSpace+TextSize/2)

有人能解释ImageSpan的确切行为吗,因为我必须单独测量ImageSpan并计算结果

我应该如何测量ImageSpan,以便ImageSpan的高度在与其他字符串或甚至其他ImageSpans组合后不会改变