1) TextView의 maxLines, ellipsize를 이용한 텍스트 제어
TextView를 이용해 텍스트를 처리할 때 일정 글자수만 보여지고 글자 줄임을 하고 싶다면 TextView의 maxLines와 ellipsize를 이용해 지정할 수 있다.(maxLines는 현재 2까지만 지정 가능)
-----------------------------------------------------------------
ellipsize 속성 지정 예)
android:ellipsize="none" 아무 표시 없이 잘라줌
android:ellipsize="start" 앞 부분에 글자 줄임표시(...)
android:ellipsize="end" 뒷 부분에 글자 줄임표시(...)
android:ellipsize="middle" 중간 부분에 글자 줄임표시(...)
android:ellipsize="marquee" 일정 시간을 두고 왼쪽으로 글자가 흘러가게 함
------------------------------------------------------------------
예)
텍스트 양이 두 줄을 넘어가면 두 줄까지만 표시하고 두 줄 끝 부분에 말줄임표시(...) 처리
<TextView
android:id="@+id/style_col4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15dip"
android:ellipsize="end"
android:maxLines="2"
/>
2. TextView의 singleLine, ellipsize의 marquee를 이용한 흐르는 글자 처리하기
singleLine을 true로 지정하고 ellipsize를 marquee로 지정함으로써 글자수가 많아 한 라인에 다 보여줄 수 없을 때 글자를 흐르게 처리할 수 있음 (marquee는 포커스를 받을 수 있을 때 동작하기 때문에 ListView의 한 라인의 TextView 에서 처리시 잘 동작하지만 포커스를 못 받는 경우는 아래의 java 코드에서 처리하는 것처럼 setSelected(true) 메소드를 이용해 선택된 것으로 처리를 해야 함)
------------------------------------------------
예)
<TextView
android:id="@+id/style_col4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15dip"
android:ellipsize="marquee"
android:singleLine="true"
/>
------------------------------------------------
java 코드에서 처리하기
TextView detail_title = (TextView)findViewById(R.id.detail_title);
//휴대폰 넓이 보다 텍스트가 길 경우 마키 처리
detail_title.setSingleLine(true);
detail_title.setEllipsize(TruncateAt.MARQUEE);
//포커스를 받아야 문자가 흐르기 때문에
//포커스를 받을 수 없는 상황에서는 선택된 것으로 처리하면 마키 동작
detail_title.setSelected(true);
'Android' 카테고리의 다른 글
안드로이드 디바이스 넓이와 높이 구하기 (0) | 2016.10.05 |
---|---|
안드로이드 휴대폰에서 사용자 휴대폰 번호 구하기 (0) | 2016.10.05 |
.android 경로 이동하기 (0) | 2016.10.05 |
실행중인 Service 알아내기 (0) | 2016.10.01 |
Activity를 Dialog로 띄우기 (0) | 2016.10.01 |