<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<SeekBar android:id="@+id/seek"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:secondaryProgress="75" />
<TextView android:id="@+id/progress"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView android:id="@+id/tracking"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;
public class HelloSeekBar extends Activity implements
SeekBar.OnSeekBarChangeListener {
SeekBar mSeekBar;
TextView mProgressText;
TextView mTrackingText;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.seekbar_ex_01);
mSeekBar = (SeekBar) findViewById(R.id.seek);
mSeekBar.setOnSeekBarChangeListener(this);
mProgressText = (TextView) findViewById(R.id.progress);
mTrackingText = (TextView) findViewById(R.id.tracking);
}
@Override
public void onProgressChanged(SeekBar seeBar, int progress,
boolean fromTouch) {
// TODO Auto-generated method stub
mProgressText.setText(progress + " "
+ getString(R.string.seekbar_from_touch) + " = " + fromTouch);
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
mTrackingText.setText(getString(R.string.seekbar_tracking_on));
}
@Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
mTrackingText.setText(getString(R.string.seekbar_tracking_off));
}
}
SeekBar 요소의 속성은 막대바가 나타내는 값의 범위를 0부터 max값으로 설정하는 android:max 속성과 현재 추의 위치(또는 값)를 나타내는 android:progress 속성 그리고 두번 째 바의 값을 표시하는 android:secondaryProgress(옵션)으로 구성된다.
사용자가 식바의 추를 움직일 때마다 SeekBar.OnSeekBarChangeListener라는 이벤트 리스너를 통해 세 종류의 이벤트를 얻게 된다.
- onProgressChanged(SeekBar seekBar, int progress, boolean formTouch)
: 추가 움직일때 마다 변화되는 값을 매개변수로 제공한다. 매개변수 SeekBar는 어떤 식바인지에 대한 정보를 객체를 전달한다. progress는 사용자가 XML 요소의 android:progress 속성으로 변경된 추의 위치를 알려 준다. fromTouch는 사용자가 현재 계속 터치하고 있는 상태인지 알려준다.
- onStartTrackingTouch(SeekBar seekBar)
: 사용자가 손으로 지금 식바를 터치하였을 때 발생하는 이벤트이다. 매개변수로 전달되는 seekBar는 현재 사용자가 터치한 식바 객체이다.
- onStopTrackingTouch(SeekBar seekBar)
: 사용자가 식바에서 손을 뗏었을 때 발생하는 이벤트이다. 매개변수로 전달되는 seekBar는 현재 사용자가 손을 뗀 식바 객체이다.
[Android]프로그레스바 이벤트 (0) | 2013.03.31 |
---|---|
[Android]RatingBar 이벤트 (0) | 2013.03.31 |
[android]라디오 그룹 이벤트 (0) | 2013.03.10 |
[Android] 뷰 이벤트 (0) | 2013.03.10 |
[android]뷰의 화면 출력 과정 (0) | 2013.03.09 |
댓글 영역