私はあなたの質問に対する正確な答えはわかりませんが、一般的には、グラフィカルライブラリで利用可能な方法を使用して、フォントの種類とサイズに基づいてテキストの幅と高さを計算できます。
私はC#とJavaでそれを行っています。 C#では "MeasureString"、Javaでは "FontMetrics"と呼ばれています。
EDIT:このコードは(私はここアンドロイドSDKを持っていないので、私はそれをコンパイルしていない)に有用である場合
を参照してください:
String myText="";
String tempStr="";
int startIndex=0;
int endIndex=0;
//calculate end index that fits
endIndex=myPaint.breakText(myTest, true, frameWidth, null)-1;
//substring that fits into the frame
tempStr=myText.substring(startIndex,endIndex);
while(endIndex < myText.length()-1)
{
//draw or add tempStr to the Frame
//at this point
//set new start index
startIndex=endIndex+1;
//substring the remaining of text
tempStr=myText.substring(startIndex,myText.length()-1);
//calculate end of index that fits
endIndex=myPaint.breakText(tempStr, true, frameWidth, null)-1;
//substring that fits into the frame
tempStr=myText.substring(startIndex,endIndex);
}
同様の方法は、Androidのために用意されています
breakText(String text, boolean measureForwards, float maxWidth, float[] measuredWidth)
測定された幅がmaxWidthを超えると、テキストを測定して早期に停止します。
measureText(String text)
戻るテキストの幅。
http://developer.android.com/reference/android/graphics/Paint.html
uがコードをテストしましたか? –