Как добавить текст внутри растрового изображения или рисунка?

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


person Vins    schedule 03.02.2012    source источник
comment
попробуйте этот способ title="как написать текст поверх изображения в Android и сохранить его"> stackoverflow.com/questions/6159186/   -  person MKJParekh    schedule 03.02.2012


Ответы (2)


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

Вот мое решение:-

Bitmap bitmap = BitmapFactory.decodeResource(
            getResources(), com.cinchvalet.app.client.R.drawable.slider_pop_counter);

    Bitmap bmp = bitmap.copy(Bitmap.Config.ARGB_8888, true);
    Canvas c = new Canvas(bmp);
    String text = "Your text";
    Paint p = new Paint();
    p.setTypeface(Typeface.DEFAULT_BOLD);
    p.setTextSize(35);
    p.setColor(getResources().getColor(com.cinchvalet.app.client.R.color.Black));
    int width = (int) p.measureText(text);
    int yPos = (int) ((c.getHeight() / 2)
            - ((p.descent() + p.ascent()) / 2) - 10);
    c.drawText(text, (bmp.getWidth() - width) / 2, yPos, p);

-на вашем растровом изображении Нарисуйте текст на растровом изображении, а затем вы можете установить растровое изображение на свой Imageview

-Благодарность!

person Hardy    schedule 06.04.2015

Рассматривали ли вы просто наложение TextView на ImageView с использованием относительного макета?

person Joel Martinez    schedule 03.02.2012
comment
Хм, это может сработать, но подумайте, если мне придется устанавливать макет с помощью setContenView() для каждой секунды, это повлияет на производительность, верно? - person Vins; 03.02.2012
comment
Вы не можете вызывать setContentView() более одного раза. Вам нужно будет сделать родительский макет относительным макетом и передать его в качестве параметра, например: setContentView(R.layout.yourlayoutxmlfilename) - person FoamyGuy; 03.02.2012