android — Неравномерное масштабирование текста в Skia (бэкэнд FreeType 2)

Моя проблема в том, что во время плавного масштабирования применяется к холсту Skia (с concat метод) текст, кажется, масштабируется в «рывках», неравномерно. Эта проблема особенно очевидна на платформе Android с бэкэндом FreeType 2.

Я полагаю, что именно так работает общее масштабирование текста в Skia — сначала примените размер текста к движку шрифтов, затем извлеките растровое изображение глифа и преобразуйте его с помощью матрицы «остаток» для достижения желаемого конечного размера. Но каким-то образом окончательное оставшееся масштабирование не применяется, что приводит к таким всплескам при переходе между целыми значениями размера текста. То же самое с чистым Java / Android canvas работает безупречно (текст плавно масштабируется).

У меня вопрос, как я могу исправить это поведение? Может быть, есть какой-то флаг конфигурации сборки, который я мог бы настроить SkPaint флаг времени выполнения?

Ския ревизия есть m59,

8

Решение

Я не знаю Skia, но обычно, когда я вижу такое поведение с масштабированием текста, это происходит потому, что вы приводите свой масштабирующий float к int.

float scale = someValue;
int someOtherVar = scale;
... some scaling math on someOtherVar...
text.setScale(someOtherVar)

Это приведет к описанному поведению

Никогда не конвертируйте переменные масштабирования в int до самого последнего шага.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]