0

私のコードは

 Paint paint= new Paint();
 paint.setTextSize(size); 
 int iRet = 0; 
 if (str != null && str.length() > 0) {
     int len = str.length(); 
     float[] widths = new float[len]; 
     paint.getTextWidths(str, widths); 
     for (int j = 0; j < len; j++) {
     iRet += (int) Math.ceil(widths[j]); 
    } 
}
 return iRet;

文字列の幅を取得したいのですが、戻り結果にTextViewでエラーが発生します。

正しい方法がわからない。

ありがとう。

仮想マシンで表示します。

4

4 に答える 4

2

テキスト幅を計算するには、次を使用する必要があります。

public float measureText (String text)

クラスPaintのメソッドは、ペイントで測定されたテキストの幅を返します。

于 2012-10-31T09:10:00.003 に答える
1

使用できます:

int width = paint.measureText("this text");

measureText(String text)は、テキストの幅を返します。

于 2012-10-31T09:09:47.897 に答える
1

キャンバスを使用してみることができます。Textviewでテキストを適切なサイズで表示できないことがわかった場合は、Canvasを使用してテキストを描画します。必要な幅が得られます。これは、dp、spによる間違った原因である可能性があります。またはpx。

于 2012-11-08T06:29:05.563 に答える
0

ペイントクラスのmeasureText()を呼び出すことで測定できます。ここにそのコードがあります-

Paint p=new paint();

int value = p.measureText("give input string to measure");
于 2012-10-31T09:26:40.987 に答える