我需要在文本 View 中放置一些图标,但它们不适合行高(请看箭头):

我尝试了这个:

spannable.setSpan(new ImageSpan(context, entry.getValue(), ImageSpan.ALIGN_BOTTOM), Matcher.start(), matcher.end(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
t.setText(spannable, BufferType.SPANNABLE);

和这个:
    Drawable myIcon = c.getResources().getDrawable(R.drawable.myicon);
    myIcon.setBounds(0, 0, myIcon.getIntrinsicWidth(), myIcon.getIntrinsicHeight());
    spannable.setSpan(new ImageSpan(myIcon, ImageSpan.ALIGN_BASELINE), matcher.start(), matcher.end(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
t.setText(spannable, BufferType.SPANNABLE);

在两种情况下,我都得到相同的结果。

我将图标保留在/ res / drawable文件夹中,其大小为75x75px。
我试图降低图像分辨率,但看起来模糊

最佳答案

您需要将图像的边界设置为TextView的行高。例如:

myIcon.setBounds(0, 0, t.getLineHeight(),t.getLineHeight());

当然,这假设您要使用正方形图像。如果不是正方形,那么您将需要手动确定应基于线条高度的宽度值。

07-27 16:41