일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 샘플
- error
- 신도림 테크노마트
- 보라카이
- 신도림
- swift3
- IOS
- 아이폰7
- GCD
- 포켓몬 GO
- LG유플러스
- 페이백
- 해몽
- 스마트폰
- 얻는법
- loop
- Bitcode
- Xcode
- afterdelay
- push
- 공략
- Check
- 포켓볼
- 앱스토어
- Example
- setting
- UITableView
- swift
- simulator
- UIView
- Today
- Total
도래울
안드로이드 TextSwitcher 사용하기 본문
TextSwitcher 는 Text를 변경하는데 사용하는 View입니다.
Text를 변경할 때 효과를 줄 수 있다는 장점이 있습니다.
다음 예제는 Apidemos에 나온 것과 동일한 내용을 다룹니다.
다른 점은 ApiDemos는 버튼에 반응하지만, 이 예제는 TextSwitcher를 한번 클릭할 때 반응합니다.
1. 기본 프로젝트를 생성합니다.
2. main.xml의 내용을 아래와 같이 수정합니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextSwitcher android:id="@+id/time_switcher"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/>
</LinearLayout>
3. 소스 파일을 열고 아래와 같이 코딩합니다.
package com.sohon.app.dynamicWP;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextSwitcher;
import android.widget.TextView;
import android.widget.ViewSwitcher.ViewFactory;
public class ActContent extends Activity implements ViewFactory {
private TextSwitcher timeSwitcher;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
timeSwitcher = (TextSwitcher) findViewById(R.id.time_switcher);
timeSwitcher.setFactory(this);
timeSwitcher.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
ActContent.this.nextText();
}
});
Animation in = AnimationUtils.loadAnimation(this,
android.R.anim.fade_in);
Animation out = AnimationUtils.loadAnimation(this,
android.R.anim.fade_out);
timeSwitcher.setInAnimation(in);
timeSwitcher.setOutAnimation(out);
timeSwitcher.setText("1초");
}
protected void nextText() {
timeSwitcher.setText("2초");
}
public View makeView() {
TextView t = new TextView(this);
t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
t.setTextSize(36);
return t;
}
}
timeSwitcher.setFactory(this); 라는 문장은 매우 중요합니다.
이게 없으면 java.lang.NullPointerException 가 발생합니다.
setFactory를 추가하면 ViewFactory를 구현할 것을 요구합니다.
여기에 추가하는 View를 이용해 TextView를 생성하는 것 같습니다.
'개발 > Android' 카테고리의 다른 글
안드로이드 핸드폰 진동(Vibration) 설정 하기 (0) | 2016.02.05 |
---|---|
안드로이드 부팅시 Activity 자동 실행 (0) | 2016.02.05 |
[Android]AndroidManifest.xml 권한 종류 및 설명 (1) | 2016.02.05 |
[Android] Emulator에서 .apk 파일 설치 방법 (0) | 2016.02.05 |
[Android TelephonyManager] 안드로이드에서 폰 정보를 사용하기 (0) | 2016.02.05 |