Android - 如何在不抖动/抗锯齿的情况下缩放文本 - 我想要像素化文本
对于实验,我想在画布上绘制像素化文本。
这就是我到目前为止所拥有的:
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-functuion ...
有什么想法吗?
For an experiment I want to draw pixelated text on a canvas.
This is what I have so far:
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);
This achieves the size I want, but the text is antialiased and dithered, and this is not what I want.
The closest I've gotten is by doing this:
text.setTextScaleX(5);
which scales the text the way I want horizontally, but unfortunately there is no text.setTextScaleY-functuion...
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 text.setTextSize(n) 并放大字体吗?
Can you use text.setTextSize(n) and scale up the font instead?
我知道这是一个非常老的问题,但如果有人仍在寻找一个简单的解决方案,这里有一个简单的解决方案:
因此,通过让
scaleX == scaleY
,字体将按预期统一缩放。I know that this is a really old question but here's a simple solution if anyone's still looking for one:
So by letting
scaleX == scaleY
, the font will be scaled uniformly as expected.