2016-07-18 3 views
0

Как нарисовать на холсте два текста с относительным позиционированием? Пример:Android холст ничья

User: John Doe 
Status: foreigner 

Код, используемый изготовлять текст «один поверх другого» вопрос:

Canvas canvas = page.getCanvas(); 
    int titleBaseLine = 72; 
    int leftMargin = 54; 
    Paint paint = new Paint(); 
    paint.setColor(Color.BLACK); 
    paint.setTextSize(40); 
    canvas.drawText(user, leftMargin, titleBaseLine, paint); 
    canvas.drawText(userName, leftMargin, titleBaseLine, paint); 
+0

«Относительное позиционирование» является своего рода бессмысленными без лучшего описания , Во всяком случае, причина, по которой они рисуют один поверх другого, состоит в том, что вы говорите, чтобы оба рисовали в том же месте. Вы проконсультировались с документами для метода '' Canvas # drawText() '(https://developer.android.com/reference/android/graphics/Canvas.html#drawText (java.lang.String,% 20float,% 20float,% 20android.graphics.Paint)), который вы используете? –

+1

Лучшее описание ??? Я привел пример ... Ты посмотрел на него? – TeodorKolev

+0

У нас нет способа узнать, как это относится к вашему коду. О чем вы говорите, в частности? Две отдельные линии? Сепаратор двоеточия на каждой отдельной линии? Вы не указали значения для 'String' в примере вызовов drawText() '. –

ответ

0

Окончательный ответ:

int titleBaseLine = 60; 
int leftMargin = 20; 
Paint paint = new Paint(); 
paint.setColor(Color.BLACK); 
paint.setTextSize(40); 
Paint paintBold = new Paint();   
paintBold.setTypeface(Typeface.create(Typeface.DEFAULT,Typeface.BOLD)); 
paintBold.setColor(Color.BLACK); 
paintBold.setTextSize(40); 

canvas.drawText(userText, leftMargin + leftMargin, titleBaseLine, paintBold); 
canvas.drawText(username, leftMargin + paintBold.measureText(userText) + leftMargin + 10, titleBaseLine, paint); 
canvas.drawText(statusText, leftMargin + leftMargin, titleBaseLine * 2, paintBold); 
canvas.drawText(statusName, leftMargin + paintBold.measureText(statusText) + leftMargin + 10, titleBaseLine * 2, paint); 
Смежные вопросы