2011-01-16 2 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 (일부 라인이 캐릭터에오고있다).

나는 \n을 사용할 수 있지만 누구에게나 좋은 옵션이 있다는 것을 알고 있습니다.

답변

1

여기서 일 것이다 해킹의 일종이다.

+0

'ems'속성의 용도는 무엇입니까? 귀하의 대답을 사용하여 각 행에 2 줄을 얻을. 하지만 제 레이아웃에서 monospace를 사용하여 제 XML에서 잘 작동합니다. – Vivek

+0

흠, 나를 위해 그것은 올바르게 작동합니다. "ems"는 서체 (M)에서 가장 넓은 문자의 너비 인 정확히 1 개의 넓이로 만듭니다. 따라서 모노 스페이스는 1 자의 너비 여야합니다. – kcoppock

+0

각 캐릭터 사이에 공백을 넣으면 나를위한 layou와 함께 작업하고 있습니다. – Vivek

0

각 줄에 2 개의 문자가 나타나는 이유는보기의 정적 너비 때문입니다. 정적 너비가있는 단일보기에서는이 문제에 실제로 접근하지 않습니다.

많은 솔루션이 있지만 정보를 기반으로 작성한 것처럼 하나의 textview 레이아웃을 만들고 코드를 통해 textviews 배열을 동적으로 확장합니다. AKA 문자열에있는 각 문자는 자체 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

여러 텍스트 뷰를 사용하여이 작업을 수행 할 수 있습니다. 하지만 내 질문을 볼 경우 26 레이아웃이 필요합니다. 나는 이전에 그것을하고 있었다. http://stackoverflow.com/questions/4698382/applying-style-to-particular-character-in-textview – Vivek

+0

아니요, 오해하셨습니다. 하나의 레이아웃. 당신은 코드를 통해 26 번 해당 _inflate_합니다. 어떤 배열 내부는 몇 줄의 코드 일뿐입니다. – user432209

+0

@ user432209 : 불필요한 인플레이션이 여전히 많이 발생하고 '\ n'을 추가하는 것이 훨씬 더 효과적 일 수 있습니다. 또는 모노 스페이스가 괜찮 으면 위의 대답을 참조하십시오. – kcoppock

관련 문제