【问题标题】:Reduce ImageSpan height and width减少 ImageSpan 的高度和宽度
【发布时间】:2015-11-24 18:09:18
【问题描述】:

我将 Image Drawable 作为 SpannableString 设置为 TextView,但图像显示的比文本大,这使它看起来很奇怪。我需要减小图像跨度的大小,使其与文本高度相同:

这是我尝试过的:

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

SpannableStringBuilder builder = new SpannableStringBuilder(holder.temptext.getText());
builder.setSpan(new ImageSpan(drawable), selectionCursor - ":)".length(), selectionCursor, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
holder.temptext.setText(builder);
holder.temptext.setSelection(selectionCursor);

holder.caption.setText(builder);

【问题讨论】:

    标签: android android-layout textview spannablestring imagespan


    【解决方案1】:

    您需要测量TextView 的高度并使用它来代替内在界限:

    int lineHeight = holder.temptext.getLineHeight();
    
    drawable.setBounds(0, 0, lineHeight, lineHeight);
    

    【讨论】:

    • 这不会保持图像的纵横比
    • 你可以像val width = lineHeight * drawable.intrinsicWidth / drawable.intrinsicHeight这样计算新的宽度。
    猜你喜欢
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2014-11-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多