티스토리 뷰
TextView에대한 효과들을 알아보겠습니다. 먼저 실습을 위해서 긴 Text를 하나 만들겠습니다.
화면을 보시면 길게 Text를 준 만큼 TextView에서 쭉 나열되어 있는것을 보실 수 있습니다. 이제 최대 줄 수를 4 줄로 줄여보겠습니다. xml 에서 다음을 추가해 보겠습니다.
1 | android:maxLines="4" | cs |
maxLine 4를 적용하니 4 줄이 적용이 되었지만!!! '보전하세' 에서 끊겨 버리고 뒷 글이 나오지 않는 것을 볼 수 있습니다. 처음보는 사람이라면 애국가가 2절 까지 있는줄 알겠네요ㅎㅎ 이러한 일을 방지하기 위해서 뒤에 글이 더 있다는 표시를 남겨주어야 하는데요 바로 다음의 코드를 사용합니다. 흔히 글이 끝에 계속된다는 의미로 '...'을 넣어주는데 바로 그 역활을 하는 효과입니다.
1 | android:ellipsize="end" | cs |
ellipsize에 end를 주면 맨 뒤에 '...'이 생긱는 것을 보실 수 있습니다. ellipsize에 줄 수 있는 건 'start'와 'middle'도 있는데요 이는 한 줄로 표현할 때만 사용하 실 수 있습니다. 안드로이드 어플 내에서는 한 줄로 표현해야할 일들이 많습니다. 공지사항을 제목을 나열하거나 게시글의 제목을 나열할 때는 거의다 한 줄을 사용하지요!! 따라서 MaxLine으로 한 줄로 표현할 수 도있지만 많이 사용되므로 안드로이드에서는 한 줄만을 위한 정의를 만들어 놓았습니다.
1 | android:singleLine="true" //아래의 예제들은 singeLine으로 1줄을 만들었을 때만 작동합니다 | cs |
그리고 이렇게 한 줄로 만든 뒤에 줄 수 있는 효과들이 많습니다.(한 줄로 강제적으로 줄여 버렸으니 이를 위한 효과가 존재하는것 같습니다.) 일단 위에서 언급했던 'start'와 'middle'을 사용해 보겠습니다.
'start'는 앞의 내용을 다 잘라주고 한 줄에 맞추어서 뒤의 내용을 출력해 주고 'middle'은 처음과 끝 부분을 보여주는 것을 불 수 있습니다. 하지만 저렇게 짤리는것 없이 한 줄로 다 보여줄 수는 없을까??? 란 궁금중이 생길 수 있는데요 가능합니다!! 흐르는 text를 이용하시면 됩니다. 이것도 ellipsize의 옵션에 있습니다.
1 2 | android:ellipsize="marquee" android:marqueeRepeatLimit="1" | cs |
1 | text.setSelected(true); | cs |
저는 TextView text; 로 해논 상태라서 text..setSelected를 사용하였습니다. 이 상태에서 true 값을 주면 흐르게 되고 false 값을 주면 흐르지 않게 됩니다. 버튼을 눌러 두 개를 번갈아 가게 만들어 보았습니다. 결과를 확인해 보겠습니다.
잘 되는 것을 보실 수 있습니다! 효과를 위한 예제이므로 Main 코드와 xml에서의 코드를 같이 올리겠습니다. 버튼 이벤트에 관해 잘 모르시는 분은 다음의 게시물을 보시면 됩니다. '버튼(Button) 이벤트 사용법 2가지!'
MainActivity 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public class MainActivity extends AppCompatActivity implements View.OnClickListener{ Button btn; TextView text; Boolean set = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text = (TextView) findViewById(R.id.textView); btn = (Button) findViewById(R.id.button); btn.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.button if(set == true) { text.setSelected(set); set = false; } else { text.setSelected(set); set = true; } break; } } } | cs |
main_activity.xml 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GO" android:id="@+id/button" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="90dp" /> <TextView android:layout_width="fill_parent" android:layout_height="100dp" android:ellipsize="marquee" android:marqueeRepeatLimit="1" android:singleLine="true" android:id="@+id/textView" android:text="1절 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세. 무궁화 삼천리 화려강산 대한 사람, 대한으로 길이 보전하세 2절 남산 위에 저 소나무, 철갑을 두른 듯 바람서리 불변함은 우리 기상일세. 무궁화 삼천리 화려강산 대한 사람, 대한으로 길이 보전하세" android:layout_centerVertical="true" android:layout_alignParentEnd="true" /> | cs |
'안드로이드' 카테고리의 다른 글
[안드로이드] Thread Handler 예제 (0) | 2017.04.20 |
---|---|
[안드로이드] Thread 예제 (1) | 2017.04.20 |
[안드로이드] ImageView(이미지 뷰) 사용 예제 (0) | 2017.04.18 |
[안드로이드] 뒤로가기 버튼 이벤트 예제 (0) | 2017.04.17 |
[안드로이드] GridLayout 재정렬하기 (1) | 2017.04.17 |
- Total
- Today
- Yesterday