2011-01-16 10 views
0

新しい行にそれぞれの文字を配置したい。 次のXMLを使用しています。各文字を改行に配置するテキストビュー

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView 
    android:layout_width="12dip" 
    android:layout_marginLeft="12dip" 
    android:textSize="12dip" 
    android:layout_height="fill_parent" 
    android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/> 
</LinearLayout> 

が、私は次のように出力を取得しています

alt text(一部のライン2文字には来ています)。

私は\nを使用することができますが、誰にでも良いオプションがあることを知っています。

答えて

1

はうまくいくハックのようなものです。

+0

プロパティ 'ems'の使用は何ですか?あなたの答えを使用して、私は各行に2行を取得します。しかし私は私のレイアウトでmonospaceを使用しました。それは私のXMLでうまくいきます。 – Vivek

+0

うーん、私のためには正しく動作する。 "ems"はワイドになります。これは書体(M)の中で最も広い文字の幅です。したがって、モノスペースの場合、1文字の幅にする必要があります。 – kcoppock

+0

私は各キャラクターの間にスペースを置くと、私のためにあなたのレイオーと一緒に働いています。 – Vivek

0

各行に2文字ずつ表示する理由は、ビューの静的な幅が原因です。私は静的な幅を持つ単一のビューでこの問題に実際にアプローチしません。

これにはたくさんの解決策がありますが、あなたが与えた情報に基づいて、私はおそらくあなたがしたように単一のテキストビューレイアウトを作成し、コードによってテキストビューの配列を動的に膨張させます。あなたの文字列の各文字は、それ自身のtextviewに割り当てられます。これは、すべての文字が同じ幅を持っている等幅書体、に依存している

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:ems="1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:typeface="monospace" 
    android:gravity="center_horizontal" 
    android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
    android:textColor="@android:color/white" 
    /> 

:ここ

+0

私は複数のtextviewを使用してこれを行うことができます参照してください。しかし、私は私の質問が表示されたら26のレイアウトが必要です。私は以前それをやっていた。 http://stackoverflow.com/questions/4698382/applying-style-to-particular-character-in-textview – Vivek

+0

いいえ、あなたは間違っていました。 1つのレイアウト。あなたはコードを介して26回それを埋め込みます。どの配列の内部は数行のコードに過ぎません。 – user432209

+0

@ user432209:まだ多くの不必要なインフレは、 '\ n'を追加するほうがはるかに効果的です。また、モノスペースが大丈夫ならば、上記の私の答えです。 – kcoppock

関連する問題