2016-07-18 4 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

우리는 이것이 당신의 코드와 어떤 관련이 있는지 알 방법이 없습니다. 너 무슨 얘기하는거야? 두 개의 별개의 줄? 각 단일 줄에 콜론 구분 기호가 있습니까? 예제'drawText()'호출에서'String' 값을 제공하지 않았습니다. –

답변

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);