Android:measureText()基于缩放像素的返回像素是怎样的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (72)

我使用Paint的measureText()方法来测量一段文本的宽度,但我想根据特定的文本大小来测量文本。假设我想获得一个文本段的宽度,当它占据某个TextView时,这个段的宽度将为20个缩放像素。我尝试了以下内容:

Paint paint = new Paint();
paint.setTextSize(20);
paint.measureText("sample text");
提问于
用户回答回答于

你需要像这样获得densityMultiplier:

final float densityMultiplier = getContext().getResources().getDisplayMetrics().density;
final float scaledPx = 20 * densityMultiplier;
paint.setTextSize(scaledPx);
final float size = paint.measureText("sample text");
用户回答回答于

我必须做这样的事情:

int textSize = 20;
for(int i = 2; i<18 && curTextSize< textSize;i+=2)
{
    this.label.setTextSize(i);
    curTextSize = this.label.getPaint().measureText(this.label.getText().toString());
}

扫码关注云+社区