1

我正在尝试将图像内联添加到 EditText。我正在通过 ImageSpan 执行此操作。这些图像可能是 BitmapDrawables 或 VectorDrawables,并存储为 Drawable 对象。

这是我正在使用的代码:

smilie.setBounds(0, 0, editor.getLineHeight(), editor.getLineHeight());
spanObject = new ImageSpan(smilie, similieObject.imageUrl);

这种方法有两个问题。首先是图像的“观看区域”似乎发生了变化,但图像的实际比例没有变化(例如,图像的一角仅可见)。第二个问题是,只要我插入另一个 ImageSpan - 无论第一个 ImageSpan 恢复到固有高度和宽度的位置如何:

例子

我已经尝试过上述方法,首先将drawable转换为ScaleDrawable,然后将drawable转换为BitmapDrawable,但这会使图像“消失”(或至少变得非常小)。

(这里是位图转换代码供参考):

smilie.setBounds(0, 0, editor.getLineHeight(),editor.getLineHeight());

Bitmap bitmap;

bitmap = Bitmap.createBitmap(smilie.getIntrinsicWidth(), smilie.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(bitmap);
smilie.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
smilie.draw(canvas);

bitmap = Bitmap.createScaledBitmap(bitmap, editor.getLineHeight(), editor.getLineHeight(), true);
smilie = new BitmapDrawable(bitmap);

spanObject = new ImageSpan(smilie);
4

0 回答 0