2010-08-11 8 views
0

나는 TextView에 텍스트를 가운데 정렬하는 방법과 그 부모 레이아웃 안에 TextView를 가운데에 배치하는 방법을 알고있다. 그러나 내가 찾고있는 것은 제목을 중심에 배치하는 방법이다 (텍스트는 중앙에 있지만 두 번째 줄은 같은 지점에서 시작한다).두 줄로 TextView에서 제목을 가운데에 배치하는 방법은 무엇입니까?

|  Too | 
| centered! | 

또는이 (텍스트 뷰가 중심) :

| Centered | 
| right! | 

나이 :

| Center | 

하지 않음이 (텍스트 중심)

은 내가 찾고 이것이다 :

|Centered | 
|wrong!  | 

또는이 (패딩 왼쪽으로) :

| |Also  | | 
| |wrong! | | 

사람이를 understad나요? 문자열 자체를 코딩하지 않고도이 작업을 수행 할 수 있습니까?

답변

1

일부 패딩을 추가하려면 android:padding 속성을 사용하고 TextView는 android:gravity="left"을 사용하십시오.

은 BTW : 또한 즉

txtView.setText(Html.fromHtml("Centered<br/>right!")); 

, 당신은 항상 당신의 텍스트 뷰에 HTML을 사용할 수 있습니다하지만 버튼의 폭을 자동으로 단어를 깰 것이라고 방식으로 설정되어있는 경우 당신은 그것을 필요로하지 않을 수 있습니다.

두 줄의 길이에 따라 텍스트의 가운데 위치를 지정하려면 (어느 쪽이 더 길지는 알 수 없음) 실제로 너비를 먼저 계산 한 다음 패딩 조정을 수행해야합니다 따라서. 각 글자의 너비가 다르므로 (적어도 DroidSans를 기본 글꼴로 사용하는 경우) 더 긴 단어를 알기 위해 글자의 수를 셀 수 없습니다.

따라서, s.split ("")를 통해 문자열을 분할하고 첫 두 줄의 폭을 계산 : 다음

txtText.getPaint().measureText(s[0]) 
txtText.getPaint().measureText(s[1]) 

및 반환 값에 따라, 텍스트 뷰의 왼쪽 패딩을 설정 따라서.

+0

android : padding and android : gravity = "left"를 사용하면 짧은 제목이 중앙에 배치되지 않습니다. 하지만 나는 그걸로 살 수있을 것 같아. – ciffa

+0

두 번째 생각. 이것은 작동하지 않습니다. 나는 가장 긴 선의 중심이 그림 위의 중심에 오도록 너비가 동적이되기를 원합니다. 나는 이것을 제대로 설명하지 못했을 것이다. :/ – ciffa

+0

오케이. 무슨 뜻인지 알 겠어. 내 편집 된 회신을 참조하십시오 ... –

0

다른 TextView를 추가하면 문제가 해결됩니까? 즉, 두 개의 TextView를 정의합니다. 하나는 가운데 맞춤, 다른 하나는 오른쪽 정렬입니다.

3

layout_width를 fill_parent로, android : 중력 (layout_gravity가 아닌)을 가운데로 설정합니다. 이렇게하면 부모와 크기가 같은 텍스트 뷰에 텍스트의 각 줄이 개별적으로 배치됩니다.

+0

실제로 마음에있는 것이 아니라 좋은 대안입니다. – ciffa

관련 문제