Android将图像添加到文本(在文本视图中)?

时间:2012-01-21 13:32:59

标签: android image text add

首先发布在这里=) 我一直在寻找这个答案,但一直都找不到。 我想要做的是有一些文字,然后添加一个图像,然后是其余的文字。例如:

                             ____
                            |   |
Hi there, this is the photo |___|, hope you like it..

我一直在寻找,但我能找到的只是向图像添加文字或将图像添加到图像视图中,我认为这不是我想要的,因为应用程序主要是文本,但上面有图像。

所以我的问题是:如何将图像添加到文本中?

感谢


更新: 我使用了R.daneel.olivaw给我的建议,它很好用=)

但我有一个问题。让我说:“a b c”,我将b的位置设置为spanable。但是,如果我尝试删除文本并删除b,下次我写东西时它将成为我在spanable中使用的图像。我该如何纠正? Any1one有什么建议吗? 感谢=)

5 个答案:

答案 0 :(得分:25)

我认为您正在寻找Spannable界面,通过使用它,您可以将图像添加到文本视图。

link可能会有所帮助。

enter image description here

答案 1 :(得分:2)

您最好的选择是创建自己的视图,并使用canvas.drawText()替换文本onDraw()方法,使用canvas.drawBitmap()替换图像。

请参阅Canvas doc:http://developer.android.com/reference/android/graphics/Canvas.html

以下是在屏幕中央绘制一些文字的示例:

public class OverlayView extends View {

public OverlayView(final Context context) {
    super(context);
}

/**
 * Draw camera target.
 */
@Override
protected void onDraw(final Canvas canvas) {

    // view size
    int width = getWidth();
    int height = getHeight();

    float square_side = height - width * 0.8f; // size of the target square

    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setStyle(Paint.Style.FILL);

    // text size is 5% of the screen height
    paint.setTextSize(height * 0.05f);

    // draw message depending of its width
    String message = getResources().getString(R.string.photo_target_text);

    float message_width = paint.measureText(message);

    paint.setColor(getResources().getColor(R.color.color_foreground));
    canvas.drawText(message, (width - message_width) / 2,
            (height - square_side) / 4, paint);

    super.onDraw(canvas);
}

}

答案 2 :(得分:0)

据我所知,没有办法做到这一点。

但是当你使用webview并生成html时,你可以做同样的事情。

从您的内容生成html,并将其加载到webview,将webview设置设置为无缩放控件。

答案 3 :(得分:0)

这可以通过图像获取器完成:Html.ImageGetter

您必须为每张图片使用HTML标记。

答案 4 :(得分:0)

< string name="text" > "Hi there, this is the photo [img src=img.jpge/] , hope you like it. < / string>

将此添加到您的String中,它将起作用