2012-02-03 3 views
1

Я хочу нарисовать текст внутри холста (автоматически добавляя новые строки, когда это необходимо). Вот мой пример кода:Покрасьте текст на холсте в Android

Bitmap src= getBitmap(); 
    Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas cs = new Canvas(dest); 
    cs.drawBitmap(src, 0f, 0f, null); 
    TextPaint tp= new TextPaint(); 
    tp.setTextSize(.....); 
    tp. //Custom the text properties 
    StaticLayout sl= new StaticLayout(text, tp, src.getWidth(), Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false); 
    sl.draw(cs); 

это работает отлично для рисования текста с «центр | топ» тяжести. Но мне нужно было бы сделать «центр» и «центр внизу». С учетом холста src и sl легко вычислить, где sl должен идти, но Как я могу изменить «начальную точку» для StaticLayout, чтобы добавить это дополнение?

Благодаря

ответ

2

Вы можете дать StaticLayout/DynamicLayout больше места в «шириной» arguement, , чтобы получить отступы на верхней/нижней части текста вы можете использовать «canvas.translate (х, у) "

+1

Как насчет справа, как добавить добавку, чтобы текст не обрезался? – Eenvincible

Смежные вопросы