如何计算字符串字体宽度,以像素为单位

时间:2011-06-15 15:18:29

标签: java android

我想在 android 中计算字符串字体宽度(以像素为单位)。我有字符串数组,我将所有这些数组元素附加到一个字符串。所以我必须在两个连续的数组元素之间设置固定的间距。我将这个最后的字符串放入textview。最后,我将此textview添加到tablerow。总之,我想查看具有标题和值的表结构。我在这里看过很多帖子,但没有得到解决方案。

提前致谢... !!!

3 个答案:

答案 0 :(得分:21)

Paint看起来有measureText方法。我还找到了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());

答案 1 :(得分:4)

Thanks Jake for the working solution,但我发现这对我也有用:

someText = "Lorem Ipsum";
TextView myTextView = (TextView) findViewById(R.id.myTextView);
float w = myTextView.getPaint().measureText(someText);

直接从我将要使用的TextView中获取Paint让我觉得anwser会更准确。

答案 2 :(得分:-3)

我不知道这是否有效,但它可以。

int textSize=20;
Paint p=new Paint();
p.setTextSize(textSize);
String string="Hello im a string.";
public int getStringWidt()
{
    return string.length*textSize;
}