gpt4 book ai didi

android - 为绘画设置 TextSize

转载 作者:行者123 更新时间:2023-11-29 15:37:07 25 4
gpt4 key购买 nike

我正在研究为我的 textPaint 动态设置文本大小的选项。我希望设置 textSize 值逐渐增加直到到达屏幕中心并逐渐减小直到屏幕底部。

<H5>1</H5>
<H4>2</H4>
<H3>3</H3>
<H2>4</H2>
<H1>5</H1>
<H2>6</H2>
<H3>7</H3>
<H4>8</H4>
<H5>9</H5>

截至目前,我将文本大小设置为默认值。我想在我的 onDraw() 方法中动态设置这个

有什么方法可以实现吗?

更新:我尝试在 onDraw() 方法中设置绘画,而不是如下共享的构造函数

Rect bounds = getBounds();
float textX, textY;
float pivotX, pivotY;

Log.d("TAG", "canvas center point "+ canvas.getWidth() / 2 +", "+ canvas.getHeight() / 2);
Log.d("TAG", "Bounds Center Point "+ bounds.centerX() + ", "+bounds.centerY());

StaticLayout mTextLayout = new StaticLayout(text, paint, bounds.width() + 75, Layout.Alignment.ALIGN_CENTER, 1.0f, 1.0f, false);
canvas.save();

if (paint.getTextAlign() == Paint.Align.LEFT) {
textX = bounds.centerX() + 50;
textY = bounds.centerY() + 8;

}
else if (paint.getTextAlign() == Paint.Align.RIGHT) {
textX = bounds.centerX() - 100;
textY = bounds.centerY() + 10;
}
else
{
textX = bounds.centerX() + 8;
textY = bounds.centerY() + 8;
}

canvas.translate( textX, textY - mTextLayout.getHeight() / 2);
paint.setTextSize((bounds.centerY()) / 10); //Setting text size dynamically
mTextLayout.draw(canvas);
canvas.restore();

最佳答案

像这样写一个设置文字大小的方法

public void setTextSize(int size){
this.textSize=size;
invalidate();
}

使用onDraw()中存储的变量设置要绘制的文字大小

@Override
protected void onDraw(Canvas canvas) {
yourPaint.setTextSize(textSize);
//...
}

关于android - 为绘画设置 TextSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47508619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com