Ответ 1
Я думаю, что вы ищете интерфейс Spannable, используя это, вы можете добавлять изображения в текстовое представление.
Эта ссылка может помочь.
первый пост здесь =) Я искал этот ответ и не смог его найти. То, что я хочу сделать, - это добавить текст, затем добавить изображение, затем оставить текст. Например:
____
| |
Hi there, this is the photo |___|, hope you like it..
Я смотрю, но все, что я могу найти, это добавить текст в изображение или добавить изображение в изображение. Просмотр и я не думаю, что я хочу, потому что приложение в основном содержит текст, но с изображениями на нем.
Итак, мой вопрос: как добавить изображение в текст?
спасибо
UPDATE: Я использовал совет R.daneel.olivaw дал мне, и это сработало хорошо =)
Но у меня есть проблема. скажем, у меня есть: "a b c", где я устанавливаю положение b как spanable. Но если я попытаюсь удалить текст, и я удалю b, то в следующий раз, когда я напишу что-то, это станет образом, которое я использовал в spanable. Как это исправить? Кто-нибудь получил совет? спасибо =)
Я думаю, что вы ищете интерфейс Spannable, используя это, вы можете добавлять изображения в текстовое представление.
Эта ссылка может помочь.
ваш лучший вариант - создать свой собственный вид и переопределить метод onDraw() с помощью canvas.drawText() для текста и canvas.drawBitmap() для изображений.
Смотрите документ Canvas: 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);
}
}
как я знаю, нет способа сделать это.
но когда вы используете webview и сгенерированный html, вы можете сделать simillar один.
сгенерируйте html из вашего содержимого и загрузите его в веб-просмотр, установите настройки веб-просмотра без контроля масштабирования.
Это можно сделать с помощью getter: Html.ImageGetter
Вам нужно будет использовать HTML-теги для каждого изображения.
< string name="text" > "Hi there, this is the photo [img src=img.jpge/] , hope you like it. < / string>
Добавьте это в свою строку и он будет работать