Большой размер текста Android рассчитывается неправильно

У меня есть этот код для измерения ширины текста.

public float textWidthPixels(String text) {
    TextPaint textPaint = myAccountView.getPaint();
    float width = textPaint.measureText(text);

    View parent = (View) myAccountView.getParent();
    int paddingLeft = parent.getPaddingLeft();
    int paddingRight = parent.getPaddingRight();

    return width - (paddingLeft + paddingRight);

  }

который вызывается из

final ViewTreeObserver[] viewTreeObserver = {myAccountView.getViewTreeObserver()};
viewTreeObserver[0].addOnPreDrawListener(
    new OnPreDrawListener() {
      @Override
      public boolean onPreDraw() {

Однако

Когда я изменяю размер шрифта на большой в меню специальных возможностей,

ширина текста изменяется, но неточно (в нем говорится, что ширина текста меньше, чем вид, в котором он находится, но на самом деле он больше, чем вид)

Где вы вызываете этот метод? Все уже отрендерили?

Juan 02.09.2018 16:47

я звоню на viewTreeObserver.onPreDraw()

Elad Benda 02.09.2018 16:57

@pskink, но как мне получить sp в коде? `float width = textPaint.measureText (text);` возвращает px.

Elad Benda 02.09.2018 17:07

@pskink У меня двойная проверка и изменение ширины текста, но не точно (в нем говорится, что ширина текста меньше, чем в представлении, но на самом деле больше, чем в представлении)

Elad Benda 02.09.2018 17:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
34
0

Другие вопросы по теме