2015-04-14 2 views
2

Я рисую текст на холсте с этим кодом:Draw текста на холсте с пользовательским Height - Android

@Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     canvas.drawColor(Color.WHITE); 

     Paint paint = new Paint(); 
     Rect bounds = new Rect(); 
     paint.setColor(Color.BLACK); 
     paint.setTextSize(50); 

     paint.getTextBounds(first, 0, first.length(), bounds); 
     canvas.drawText(first, (canvas.getWidth() - bounds.width())/2, 50, paint); 
    } 

Вот результат:

First

Но я хочу текст, чтобы иметь больше высоты, я хочу что-то вроде этого:

Second

Я не хочу менять размер шрифта, только высоту этого текста. Как я могу это сделать ?

ответ

1

Я нашел решение для этого:

// Closing hardware acceleration 
setLayerType(LAYER_TYPE_SOFTWARE, paint); 

paint.getTextBounds(first, 0, first.length(), bounds); 
float posX = (canvas.getWidth() - bounds.width())/2; // center 
float posY = ((canvas.getHeight() - bounds.height())/2); // center 

canvas.scale(1, 10, posX, posY); 
canvas.drawText(first, posX, posY, paint); 
+0

это возможно, чтобы иметь какое-то объяснение? –

+0

canvas.scale (1, 10, posX, posY); Я только масштабирую высоту на 10 – KiKo

+0

отлично! Большое спасибо. –