使用画布绘图时,可以分别更改文本的高度和宽度。

7
我想知道在使用canvas绘制时是否有任何方法可以单独修改文本的高度和宽度。要设置文本大小,您只需执行paint.setTextSize(x);,但它会同时更改文本在X和Y轴上的大小,我需要像使用paint.setTextScaleX(x);一样单独地更改文本在X和Y轴上的大小,但是并没有类似于paint.setTextScaleY(y);的内容。

是否有任何方法来实现这个功能或者在安卓中已经存在此功能?

谢谢

1个回答

7

没有setTextScaleY方法,因为不需要这样的方法setTextSize会乘以X和Y比例因子,而setTextScaleX仅会乘以X比例因子。因此,您可以通过以下方式达到任何所需的缩放比例scaleXscaleY

setTextSize(scaleY);
setTextScaleX(scaleX/scaleY); //setTextScaleX scales according to the CURRENT size (setTextScaleX(1) does nothing).

但是在setTextSize中,我不能放置一个比例1.25,因为文本非常小,但如果我放置setTextScaleX(1.25),文本就可以了。我无法关联(scaleX / scaleY),因为scaleY应该是像30这样的数字,而scaleX应该是像1.5这样的数字,所以它给我一个非常小的数字,文本被拉伸了。我不能只以这种方式修改X大小或Y大小,或者我没有正确理解它。 - Andres
要么是你没有理解我,要么是我没有理解你:(你想要实现什么最终缩放比例? - Jong
3
没事,我懂了。 要仅修改 Y 值,我的做法是: setTextSize(actualTextSize*scaleFactor); setTextScaleX(actualXScale/scaleFactor); 要仅修改 X 值,我的做法是: setTextScaleX(actualXScale/scaleFactor)。 谢谢你的帮助 ;) - Andres
是的,这就是使用这些方法的方式。 - Jong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接