どのようにのTextViewに合わせてテキストのサイズを変更/拡張するには?

? RyanM @ | Original: StackOverFlow
---

私はそれが境界(XとY次元の両方) 「 ____ 」の範囲内に収まることを「 ____ 」などで複数行のテキストのサイズを変更するためのメソッドを作成しようとしている。

現在、私は何かを持っていますが、それがないすべては、テキストだけの最初の文字/文字はの寸法を満たすようにテキストのサイズを変更している「 ____ 」 (つまり最初の文字だけが表示可能であり、それは巨大だ) 。私はそれがTextViewの範囲内でテキストのすべての行に収まるようにする必要があります。

ここに私は今まで持っているものです。

TextView

私はこの問題は「 ____ 」を使用することにあると思います。それは、常にテキストサイズが「 ____ 」の幅または高さよりもはるかに大きくても... " __ "と " __ "の値にテキストの境界...小さな相対のために小さな数字を返します。

---

Top 5 答え

1snctln @

多分設定してみてくださいhttp://developer.android.com/reference/android/widget/TextView.html#setHorizontallyScrolling%28boolean%29 trueにtextViewを複数行でテキストをレイアウトしようとしないように、テキスト測定を行う前に

2RyanM @

私は(下記参照) 、次のコードを使用して、自分の質問に答えることができたが、私の解決策は、アプリケーションに非常に特異的であった。例えば、これはおそらく唯一の似合う及び/またはTextViewのを約ような大きさのために動作します。 1/2(また40px上余白と20pxのサイドマージン...ない下余白)画面。

あなたがあなた自身の同じような実装を作成、しかしこのアプローチをすることができます使用。静的メソッドは、基本的には文字の数を見て、 TextViewののテキストサイズに適用するスケーリング係数を決定し、その後、段階的に全体の高さ(推定高さまで、テキストサイズが増加 - テキストの幅を使用して、テキストを高さ、 TextViewの幅が)ちょうどのTextViewのそれを下回っている。必要なパラメータは、スケーリングファクタを決定する(すなわち、 / else文場合が場合)推測アンド·チェックで設定された。あなたは、おそらくそれはあなたの特定のアプリケーションのために働くように数字で遊んでする必要があります。

それはコードに簡単だった、それは私の作品が、これは、最もエレガントな解決策ではない。誰もがより良いアプローチがありますか?

TextView

Thanks.

3Octavian Damiean @

あなたの唯一の要件は、テキストが自動的に分割されており、次の行に継続することで、高さが重要でない場合は、ちょうどこのようにそれを持っている。

TextView

それは垂直にあなたのmaxEms値に応じてコンテンツだこれはあなたのTextViewのラップを持つことになります。

4vsm @

私の解決策は、あなたを助けますかどうかを確認します。

http://stackoverflow.com/questions/5033012/auto-scale-textview-text-to-fit-within-bounds/5280436#5280436

5Chase @

私は同じ問題を抱えていたし、私のために動作するように思われるクラスを書いた。基本的に、私は、別のキャンバスでテキストを描画し、私はフィットするフォントサイズを見つけるまで、再測定する静的なレイアウトを使用していました。あなたは、以下のトピックに投稿さクラスを参照してくださいすることができます。私はそれが役に立てば幸い。

http://stackoverflow.com/questions/5033012/auto-scale-textview-text-to-fit-within-bounds/5535672#5535672