我想計算字符串字體寬度(以像素爲單位)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