Android — Как масштабировать текст без сглаживания — я хочу текст в пикселях

#android #text #2d #android-canvas

#Android #текст #2d #android-canvas

Вопрос:

Для эксперимента я хочу нарисовать пиксельный текст на холсте.

Это то, что у меня есть на данный момент:

 Paint text = new Paint();
text.setAntiAlias(false);
text.setFilterBitmap(false);
text.setDither(false);
text.setFakeBoldText(false);
text.setLinearText(false);
text.setTextSize(10);

// Scale the canvas we draw on
matrix = c.getMatrix();
matrix.reset();
matrix.postTranslate(0, 0);
matrix.postScale(10,10);
c.setMatrix(matrix);
c.drawText("ABCabc", 0, 10, text);
  

Это позволяет достичь нужного мне размера, но текст сглажен и размыт, а это не то, что я хочу.

Самое близкое, что я получил, — это сделать это:

     text.setTextScaleX(5); 
  

который масштабирует текст так, как я хочу по горизонтали, но, к сожалению, нет text.setTextScaleY-функции…

Есть идеи?

Ответ №1:

Можете ли вы использовать text.setTextSize (n) и вместо этого увеличить шрифт?

Ответ №2:

Я знаю, что это действительно старый вопрос, но вот простое решение, если кто-то все еще ищет его:

 textView.setTextScaleX(scaleX);
textView.setScaleY(scaleY);
  

Таким образом, разрешив scaleX == scaleY , шрифт будет масштабироваться равномерно, как и ожидалось.