首先发布在这里=) 我一直在寻找这个答案,但一直都找不到。 我想要做的是有一些文字,然后添加一个图像,然后是其余的文字。例如:
____
| |
Hi there, this is the photo |___|, hope you like it..
我一直在寻找,但我能找到的只是向图像添加文字或将图像添加到图像视图中,我认为这不是我想要的,因为应用程序主要是文本,但上面有图像。
所以我的问题是:如何将图像添加到文本中?
感谢
更新: 我使用了R.daneel.olivaw给我的建议,它很好用=)
但我有一个问题。让我说:“a b c”,我将b的位置设置为spanable。但是,如果我尝试删除文本并删除b,下次我写东西时它将成为我在spanable中使用的图像。我该如何纠正? Any1one有什么建议吗? 感谢=)
答案 0 :(得分:25)
答案 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中,它将起作用