【问题标题】:Change text height and width separately when drawing with canvas使用画布绘图时分别更改文本高度和宽度
【发布时间】:2012-11-29 15:26:33
【问题描述】:

我想知道用canvas绘图时有没有办法分别修改文字的高度和宽度。要设置文本大小,您可以简单地执行 paint.setTextSize(x);,但它会更改 X 和 Y 中的文本大小,我需要像使用 paint.setTextScaleX(x); 那样分别更改 X 和 Y 中的文本大小,但没有像 paint.setTextScaleY(y); 这样的东西。

有什么方法可以实现吗?或者它是否已经存在于 Android 中?

谢谢

【问题讨论】:

    标签: android text canvas text-size


    【解决方案1】:

    没有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 这样的数字,而 scale X 应该是一个像 1.5 这样的数字,所以它给了我一个非常小的数字并且文本被拉伸了。我不能以这种方式只修改 X 尺寸或只修改 Y 尺寸,否则我理解不正确。
    • 要么你不了解我,要么我不了解你:(你想要达到的最终缩放比例是多少?
    • 没关系,我明白了。我只修改 Y 值: setTextSize(actualTextSize*scaleFactor); setTextScaleX(actualXScale/scaleFactor);要只修改 X 值,我会这样做: setTextScaleX(actualXScale/scaleFactor);谢谢你的帮助;)
    • 是的,这就是使用这些方法的方式。
    猜你喜欢
    • 2021-02-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 2014-09-19
    相关资源
    最近更新 更多