반응형
< 계속 업데이트 합니다. 질문 환영 >
10-06-16 초기 문서, style 설정 등 작성
- Seekbar
Progress바와 유사하나, thumb를 옮겨 사용자가 원하는 위치로 이동하는 것이 가능하다.
1) 만드는 법
-
2) Seekbar 변경에 반응하기
3) style 바꾸는 법
- thumb 바꾸는 법
thumb를 바꾸는 법은 쉽다. 함수를 사용할 경우,
drawable.setBounds(new Rect(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()));
mSeekbar.setThumb(drawable);
layout을 사용할 경우 아래 속성을 Seekbar 태그에 포함시킨다.
android:thumb="@drawable/pb_slider_thumb1"
4) seekbar에 대한 이벤트 감지
mSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
mplayer.seekTo(progress);
}
});
참고
source에서 id로 Drawable 만드는 법
Drawable d = getResources().getDrawable(drawable id)
참고 자료
http://blog.naver.com/ween8/50082179209
http://www.codeweblog.com/android-modify-seekbar-style/
http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-i
10-06-16 초기 문서, style 설정 등 작성
- Seekbar
Progress바와 유사하나, thumb를 옮겨 사용자가 원하는 위치로 이동하는 것이 가능하다.
1) 만드는 법
-
2) Seekbar 변경에 반응하기
3) style 바꾸는 법
- thumb 바꾸는 법
thumb를 바꾸는 법은 쉽다. 함수를 사용할 경우,
drawable.setBounds(new Rect(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()));
mSeekbar.setThumb(drawable);
layout을 사용할 경우 아래 속성을 Seekbar 태그에 포함시킨다.
android:thumb="@drawable/pb_slider_thumb1"
- thumb 없애기
mSeekbar.setThumb(null);
layout을 사용해서는 어떻게 해야 하는지 모르겠다.
( thumb을 통해서 없애는 방법을 쓰느니 progressbar를 쓰는게 낫다.
아이스크림 샌드위치에서는 crash가 발생한다. 버그인듯; )
- background, foregound 바꾸는 법
xml로 이루어진 drawable을 추가한다.
(이 때, 이미지들이 9patch가 안되어 있다면 동일한 이미지가 반복적으로 나타난다.)
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/pb_slider_normal" />
<item android:id="@android:id/secondaryProgress">
<clip android:drawable="@drawable/pb_slider_normal"/>
</item>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/pb_slider_highlight"/>
</item>
</layer-list>
seekbar 레이아웃에 이 xml 파일을 설정한다.
<SeekBar android:id="@+id/seek"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:secondaryProgress="75" android:thumb="@drawable/pb_slider_thumb1"
android:progressDrawable="@drawable/seekbar_drawable"/>
xml로 이루어진 drawable을 추가한다.
(이 때, 이미지들이 9patch가 안되어 있다면 동일한 이미지가 반복적으로 나타난다.)
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/pb_slider_normal" />
<item android:id="@android:id/secondaryProgress">
<clip android:drawable="@drawable/pb_slider_normal"/>
</item>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/pb_slider_highlight"/>
</item>
</layer-list>
seekbar 레이아웃에 이 xml 파일을 설정한다.
<SeekBar android:id="@+id/seek"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:secondaryProgress="75" android:thumb="@drawable/pb_slider_thumb1"
android:progressDrawable="@drawable/seekbar_drawable"/>
4) seekbar에 대한 이벤트 감지
mSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
mplayer.seekTo(progress);
}
});
5) seekbar 위치 변경
position / maxvalue 의 위치로 설정
sk.setMax(maxvalue);
sk.setProgress(position);
참고
source에서 id로 Drawable 만드는 법
Drawable d = getResources().getDrawable(drawable id)
참고 자료
http://blog.naver.com/ween8/50082179209
http://www.codeweblog.com/android-modify-seekbar-style/
http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-i
반응형
'개발 > 안드로이드 App' 카테고리의 다른 글
MediaPlayer (0) | 2010.06.17 |
---|---|
[공부] Thread (2) | 2010.06.17 |
TextView에 여러개의 style을 갖는 문자열 넣기 (0) | 2010.06.13 |
[팁] 용량이 없다고 안올라가는 경우 발생:Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE (0) | 2010.06.13 |
[TIP] SDCard 경로 구하기 (0) | 2010.06.11 |