Android canvas 平局
Android canvas draw
如何在canvas两个相对定位的文本上绘制?
示例:
User: John Doe
Status: foreigner
使用代码生成文本 "one on top of another" 问题:
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);
最终答案:
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);
如何在canvas两个相对定位的文本上绘制? 示例:
User: John Doe
Status: foreigner
使用代码生成文本 "one on top of another" 问题:
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);
最终答案:
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);