2011-12-07 19 views
1

私はAndroidの下に読者を書いています。ページは別々のビューに分かれています。テキストを異なるビューに正しく分割するために、画面上にいくつの文字が収まるかを計算するにはどうすればよいですか?たぶん、これを行う簡単な方法がありますか?ビューにテキストを追加するための コード:Android。画面に収まる文字数を計算する

for (int i = 0; i < pages; i++) { 
      TextView textView = new TextView(getApplicationContext()); 
      textView.setText(text); 
      realViewSwitcher.addView(textView); 
     } 

答えて

0

あなたはおそらくテキストサイズに基づいて仮定を作ることができ、多分ここではデフォルトでは12dipだろう。そして、平均単語長は5単語と仮定します。 5文字の単語がどれだけの数のディップを取るかを決定する。幅と高さを取って、その数で割ります。

+0

より簡単なバリアントはありますか?私はちょうどテキストが多くのページに分割され、スクロールされるリーダーのような何かをする必要があります。 – Kyborg2011

+0

これが機能する可能性があります。 getTextSize()は、テキストのサイズを取得します。合計面を計算するためにgetMaxEms()*(あなたはsetMaxLines()を何にするか)を指定します。全表面に達するまで、文字単位で文字を追加します。 – Ian

0

Paintがお手伝いします。 "measureText"や "breakText"のようなメソッドがあります。 getPaint()を使用してTextViewからPaintオブジェクトを取得できます。

0

多分、あなたは何とかテキストビューに収まる数のemを計算することができます。

か、computerVerticalScrollRange()に基づいて文字に合わせるアルゴリズムを作成できます。試行錯誤を経て、最終的に完璧なフィット感を見つけることができました。

関連する問題