안드로이드 2줄 이상의 문자열의 TextView를 가운데로 정렬하고 문자열 자체를 왼쪽으로 정렬합니다.

6836 단어 Android

네, "도대체 무슨 말을 하는 거예요?"제목인 것 같습니다.


그러니까 그런 거야.

TextView로 버튼 만들기 등의 경우
TextView에서 Padding (문자열과 TextView의 끝 너비) 을 설정했는지 궁금합니다.
이럴 때 TextView 자체는 중앙에 정렬되어 있고 안의 문자열은 왼쪽에 정렬되어 있습니다!
그런 일이 있었어요.
쉽게 이룰 수 있을 줄 알았는데 실제로 설치할 때 좀 고민이 돼서...
같은 고민을 하는 사람을 위해 나는 여기에 남을 것이다.

1. layout 파일로gravit=left 지정하기


이런layout 파일의 TextView의gravity는gravit=left로 하면 되잖아요!
처음에는 이렇게 생각했는데, 지금은 이렇다.
activity_main.xml
<TextView
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:padding="20dp"
        android:gravity="left"
        android:background="@color/colorPrimaryDark"
        android:textSize="15dp"
        android:textColor="@color/colorWhite"
        android:text="@string/sample_text"/>

문자열을 왼쪽으로 오프셋

2. layout 파일에gravit=center를 지정해 보기


그러면gravit=센터를 지목하면 어떨까!
이렇게
activity_main.xml
<TextView
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:padding="20dp"
        android:gravity="center"
        android:background="@color/colorPrimaryDark"
        android:textSize="15dp"
        android:textColor="@color/colorWhite"
        android:text="@string/sample_text"/>

당연한 일이지만 모두 중앙에 맞춰져 있다.

대책문자열에 전각 공백을 넣어 줄마다 문자를 정렬하고 가운데로 놓기


억지스럽지만 문자열에 전각 공간을 넣으면gravit=center에서 실현할 수 있다.
이번 문자열은요.こんにちは!
これはサンプルアプリです!
네.
1행의 "안녕하세요!"전각 6자, 두 번째 줄의 "이것은 샘플 응용이다!"전체 각도는 13자입니다.
즉, 첫 번째 줄 뒤에 7문자의 전각 공간을 넣으면 첫 번째 줄과 두 번째 줄의 문자 수가 같다는 것이다
중앙을 맞추면 왼쪽 정렬 사이즈로 보여요.
strings.xml
<string name="sample_text">"こんにちは!       \nこれはサンプルアプリです!"</string>
줄 바꿈(\n) 전에 7개의 전각 공간이 있다는 것은 이해하기 어렵다.
전체 각도 공백이 필요한 경우 문자열을 큰따옴표로 묶습니다.
만약 그렇게 하지 않는다면, 공간이 있어도 화면을 표시할 때 공간 부분을 생략할 것이다.
그럼 어떻게 될지...
activity_main.xml
<TextView
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:padding="20dp"
        android:gravity="center"
        android:background="@color/colorPrimaryDark"
        android:textSize="15dp"
        android:textColor="@color/colorWhite"
        android:text="@string/sample_text"/>

다 했어!
하지만 이번엔 두 줄, 이렇게 끝났지만 몇 십 줄의 문자열이 있다면
모든 줄에 전각 공간이 있어야 하니 너무 귀찮아서 할 수가 없겠지.
원래 설치하는 방법부터 강제감이 있어 불편하다.

대책LinerLayout으로 TextView 둘러싸기


나는 이것이 가장 현실적인 실현 방법이라고 생각한다.
TextView를 LiearLayout으로 둘러쌉니다.
TextView로 설정됐던 하이트와 백그라운드는 그대로 Linter Layout으로 이동했다.
TextView의 Height와 width는 Wrap입니다.문자열과 TextView의 크기를 content로 설정합니다.
그리고 중요한 것은 Linter Layout의gravity를center로 하고 TextView의gravity를left로 한다.
이렇게 하면...
· LinkearLayout의 TextView 가운데
• TextView의 문자열 왼쪽 정렬
의 상태, 실현 가능.
activity_main.xml
<LinearLayout
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimaryDark"
        android:gravity="center">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="20dp"
            android:text="@string/sample_text"
            android:textColor="@color/colorWhite"
            android:textSize="15dp" />

    </LinearLayout>

완성!
그게 다야.
・ 전체 구석 공백을 두고 모든 줄의 문자 수를 더하여 가운데에 놓다
· LiearLayout으로 TextView 둘러보기
두 가지 해결 방안을 소개했다.
글자 수가 적으면 전자는 실현하기 쉬우나 기본적으로 후자로 실현하는 것이 아름답다고 생각합니다.
이것 때문에 고민할 줄은 몰랐어...
같은 고민을 하는 사람을 도울 수 있다면 다행이에요.

좋은 웹페이지 즐겨찾기