본문 바로가기

안드로이드/레이아웃 구현과 활용

[AOS] TextView에 Auto size 적용하기

반응형

textview에 auto size를 적용시 한정된 영역에 글자를 모두 담지 못할 경우 사이즈가 줄어 드는 원리기 때문에 원칙적은 width / height를 고정 해줘야합니다. ( 구글은 wrap_content 비권장 ) 

하지만 height를 고정하면서 글자가 짤리지 않고 불필요한 여백을 갖지 않게 하는건 번거롭기 때문에 wrap_content를 사용하고 maxLines를 1로 지정해주면 됩니다. 

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:autoSizeMinTextSize="5dp"
                android:autoSizeStepGranularity="1dp"
                android:autoSizeTextType="uniform"
                android:maxLines="1"
                android:textColor="@color/color_ff6223"
                android:textSize="12dp" />

- autoSizeTextType : uniform으로 지정

- autoSizeMinTextSize : 작아질 최소 사이즈를 지정합니다.

- autoSizeStepGranularity : 영역에 넘칠 경우 크기를 줄일 단위를 지정합니다. ( 위 코드는 1dp씩 줄어듬, 클수록 부자연스러움 ) 

- autoSizeMaxTextSize : 커질 최대 사이즈 지정 ( 위 소스에선 미사용 ) 

 

요약 : 5dp ~ 12dp 사이를 1dp씩 줄이면서 영역에 모든 글자가 들어갈때까지 축소하고 5dp 사이즈로 줄여도 들어가지 않을 경우 글자 짤림 

 

보다 자세한 내용은 공식 문서를 이용해주세요 

 

 

반응형