2011-01-25 8 views
0

私はグラフィカルなAndroidプロジェクトを持っています。ユーザーインターフェイスの機能を提供するための私の主な手口は、drawrectとdrawtextを使って画面上にラベル付きの矩形を描画することです。次に、私はタッチイベントをキャプチャし、それらが四角形で発生しているかどうかを確認します。そうすると、ボタンがあります。Androidで複数行にテキストを表示する

これは最も洗練された方法ではないかもしれませんが、魅力的なように動作しているようです。しかし、私のラベルのすべてが1行ですべてよく見えるわけではありません。私は2つのラベルに書きたいと思います。私は2つの別々の行を書いて、手作業で整列させて、きれいに間隔を置いて中心に置くことができると思いますが、可能ならばそれを避けたいと思います。

Androidでは、テキストラベルを分割して1つのステップで簡単に書き込むことができますか?

私はこれを達成する簡単な方法があるとは思わないおかげで、 R.

答えて

0

Androidアプリケーションでは、レイアウトを作成し、さまざまなウィジェットを使用してレイアウトを作成できます。これらの潜在的なウィジェットの1つはボタンです。ラベルの長さが必要な場合は、ボタンを使用すれば複数の行にボタンラベルが表示されます。

しかし、私のアプリケーションはSurfaceRunnerであり、私が知る限り、サポートボタンはありません。私は様々な矩形を描画し、境界内で画面のタッチを確認することによって、ボタン・イシュ機能を使用します。これは私の目的にはうまくいきますが、ボタンウィジェットのような表示タスクを自動化するものではありません。 2行に長いラベルを表示するには、コード内で明示的に行う必要があります。しかたがない。

は幸いなことに、それが唯一の追加の行だ:私は「10」と「20」よりも少し多くの自動ものを使用した場合

canvas.drawRoundRect (Button, ROUNDOVER_SIZE-1, ROUNDOVER_SIZE-1, paint); 
canvas.drawText (Text1, Button.centerX() - paint.measureText (Text1)/2, Button.centerY() - 10, paint); 
canvas.drawText (Text2, Button.centerX() - paint.measureText (Text2)/2, Button.centerY() + 20, paint); 

はもちろん、それはクーラーだったでしょうが、これは仕事を取得しています完了しました。

0

、テキストを測定し、それを描画する必要がありますそれはにbuttonWidthオフセット - TextWidth/2

+0

これで、テキストをrectの中で水平にセンタリングすることができます。これは私が本当に楽しみにしている2つのラインの垂直方向のセンタリングです。 – Rich

+0

また、// int textHeight =(int)(paintDescription.getFontSpacing());を使用してテキストの高さを取得することもできますが、使用する行数を合計して同じメソッドを使用します。すべてとすべて、そのお尻の痛み:)でも – tribe84

+0

でした。結局、私はプログラミング教師に発疹を与え、いくつかの魔法の数を使用しました。それは完璧ではありませんが、よく見えます。とにかくありがとう。 – Rich

関連する問題