Android Добавить изображение в текст (в режиме просмотра текста)? - PullRequest
18 голосов
/ 21 января 2012

первый пост тут =) Я искал этот ответ и не смог его найти. То, что я хочу сделать, это иметь некоторый текст, затем добавить изображение, а затем текст. Например:

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

Я искал, но все, что я могу найти, это добавить текст к изображению или добавить изображение к изображению, и я не думаю, что это то, чего я хочу, потому что приложение в основном текстовое, но с изображениями на нем.

Итак, мой вопрос: как добавить изображение в текст?

спасибо


UPDATE: Я использовал совет, который дал мне R.daneel.olivaw, и он работал хорошо =)

Но у меня есть проблема. допустим, у меня есть: «a b c», где я устанавливаю позицию b как spanable. Но если я пытаюсь удалить текст и удаляю b, в следующий раз, когда я что-то напишу, он станет изображением, которое я использовал в spanable. Как мне это исправить? Кто-нибудь получил совет? спасибо =)

Ответы [ 5 ]

25 голосов
/ 21 января 2012

Я думаю, что вы ищете интерфейс Spannable. С его помощью вы можете добавлять изображения в текстовое представление.

Эта ссылка может помочь.

enter image description here

2 голосов
/ 21 января 2012

лучший вариант - создать собственный вид и переопределить метод onDraw (), используя canvas.drawText () для текста и canvas.drawBitmap () для изображений.

См. Документ холста: 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);
}

}
0 голосов
/ 17 июня 2017
< string name="text" > "Hi there, this is the photo [img src=img.jpge/] , hope you like it. < / string>

Добавьте это в свою строку, и оно будет работать

0 голосов
/ 22 января 2012

Это можно сделать с помощью средства получения изображений: Html.ImageGetter

Вам придется использовать теги HTML для каждого изображения.

0 голосов
/ 21 января 2012

как я знаю, нет способа сделать это.

но когда вы используете веб-просмотр и сгенерированный html, вы можете сделать то же самое.

сгенерируйте html из вашего содержимого и загрузите его в веб-просмотр, установите настройки веб-просмотра без управления масштабированием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...