Existe um método que retorna a largura (em pixels) de um texto a ser desenhado em uma tela do Android usando o método drawText () de acordo com o Paint usado para desenhá-lo?
android
text
android-canvas
draw
NioX5199
fonte
fonte
fonte
Resposta complementar
Há uma pequena diferença entre a largura retornada por
Paint.measureText
ePaint.getTextBounds
.measureText
retorna uma largura que inclui o valor advanceX do glifo preenchendo o início e o final da string. ARect
largura retornada porgetTextBounds
não possui esse preenchimento porque os limites são osRect
que envolvem firmemente o texto.fonte
fonte
Na verdade, existem três maneiras diferentes de medir o texto.
GetTextBounds:
MeasureTextWidth:
E getTextWidths:
Observe que getTextWidths pode ser útil se você estiver tentando determinar quando quebrar o texto na próxima linha.
O measureTextWidth e getTextWidth são iguais e têm a largura avançada que mede sobre a qual outros postaram. Alguns consideram esse espaço excessivo. No entanto, isso é muito subjetivo e depende da fonte.
Por exemplo, a largura dos limites do texto da medida pode parecer muito pequena:
No entanto, ao adicionar um texto adicional, os limites para uma letra parecem normais:
Imagens tiradas do Android Developers Guide to Custom Canvas Drawing
fonte
Bem, eu fiz de maneira diferente:
Espero que isso ajude você.
fonte
Usei os métodos measureText () e getTextPath () + computeBounds () e criei um Excel com todos os atributos de texto para fontes de tamanho fixo que podem ser encontradas em https://github.com/ArminJo/android-blue-display/blob /master/TextWidth.xlsx . Lá você também encontrará fórmulas simples para outros atributos de texto, como ascender etc.
O aplicativo e a função drawFontTest () para gerar os valores brutos usados no Excel também estão disponíveis neste repositório.
fonte
você pode usar "textPaint.getTextSize ()" para obter a largura do texto
fonte