我想计算字符串字体宽度(以像素为单位)android。我有字符串数组,我附加所有这些数组元素以形成一个字符串。所以我必须在两个连续的数组元素之间设置固定的间距。我将这个最终的字符串放入textview中。最后,我将这个文本视图添加到表格中。总之,我想查看标题和值的表结构。我看过很多帖子,但没有得到解决方案。如何以像素为单位计算字符串字体宽度?
在此先感谢... !!!
我想计算字符串字体宽度(以像素为单位)android。我有字符串数组,我附加所有这些数组元素以形成一个字符串。所以我必须在两个连续的数组元素之间设置固定的间距。我将这个最终的字符串放入textview中。最后,我将这个文本视图添加到表格中。总之,我想查看标题和值的表结构。我看过很多帖子,但没有得到解决方案。如何以像素为单位计算字符串字体宽度?
在此先感谢... !!!
看起来有measureText
方法可用于Paint
。我还发现了一个example:
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setStrokeWidth(5);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setTextSize(64);
mPaint.setTypeface(Typeface.create(Typeface.SERIF, Typeface.ITALIC));
// ...
float w = mPaint.measureText(text, 0, text.length());
工程就像一个魅力。谢谢 – 2013-06-07 13:19:38
我不知道这是否正常工作,但它可以。
int textSize=20;
Paint p=new Paint();
p.setTextSize(textSize);
String string="Hello im a string.";
public int getStringWidt()
{
return string.length*textSize;
}
由于现在字体的字母有不同的宽度,这只是一个近似的解决方案(假设textSize =字母大小的像素是正确的) – RookieGuy 2015-10-12 09:55:47
Thanks Jake for the working solution,但我发现这对我工作太:
someText = "Lorem Ipsum";
TextView myTextView = (TextView) findViewById(R.id.myTextView);
float w = myTextView.getPaint().measureText(someText);
直接从我打算与之合作的TextView的获取油漆让我觉得anwser会更准确。
虽然看起来像'measureText'是你特别要求的,你确定你需要把它变得复杂吗?有没有一个原因,你为什么不能使用可能在'TableLayout'中放置的多个TextView? – kabuko 2011-06-15 17:57:59
非常感谢...多个TextViews的工作。 – 2011-06-16 06:46:17