일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 개발 2.0 강좌
- 안드로이드 2.0 개발
- 안드로이드2.0개발
- 하루 한마디 영어
- 인기있는 블로그 만들기
- 안드로이드 바탕화면
- 구글 안드로이드 개발
- Form Stuff
- 구글 안드로이드
- 스카이 안드로이드폰 시리우스
- 안드로이드 개발 2.0
- sky 시리우스폰
- objective-c
- 스카이 안드로이드폰 시리우스 K양 동영상
- 하루한마디영어
- 안드로이드 배경화면
- 안드로이드 개발 강좌
- 안드로이드2.0
- MapView
- 안드로이드 개발
- android
- 안드로이드폰
- 아이폰 배경화면
- 안드로이드개발
- SKY 시리우스
- 스마트폰 배경화면
- 영어
- 구글안드로이드
- 아이폰 바탕화면
- 안드로이드
- Today
- Total
moozi
MP3 플레이어 만들기 3 - MP3 목록가져오기 본문
이번 강좌는 지난 강좌 [ 안드로이드 개발 2.0 ] MP3 플레이어 만들기 2 - MP3 플레이어의 시작 에서 이어집니다.
지난 강좌에서는 SD Card 에 넣어 둔 mp3파일 한 개의 경로를 미리 지정해서 MP3파일을 플레이 했습니다. 이번 강좌에서는 MP3 파일의 목록을 가져오는 방법에 대한 내용입니다.
1. 다음과 같이 프로젝트를 생성합니다.
2. res -> layout -> 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">
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:drawSelectorOnTop="false"/>
<TextView android:id="@id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="No Music Files found on SD Card."/>
</LinearLayout>
위 코드에서 TextView는 MP3파일이 SD Card에 없을 경우 No Music Files found on SD Card 라고 표시해 줍니다.
3. res -> layout -> music_item.xml 을 추가합니다.
File 메뉴에서 New -> Other 선택
XML을 선택한 후 Next를 눌러 다음 화면에서 파일명에 music_item.xml 를 입력하세요.
생성된 music_item.xml 에 다음과 같이 편집합니다.
<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
코드에서 TextView는 mp3파일의 이름을 출력하는데 사용됩니다.
4. src -> happy.MyMusicPlayer -> MyMusicPlayer.java 파일을 다음과 같이 편집합니다.
package happy.MyMusicPlayer;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
class Mp3Filter implements FilenameFilter {
public boolean accept(File dir, String name) {
return (name.endsWith(".mp3")); // 확장자가 mp3인지 확인
}
}
public class MyMusicPlayer extends ListActivity {
private static final String MEDIA_PATH = new String("/sdcard/"); // 파일 경로 지정
private List<String> songs = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
try {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
updateSongList();
} catch (NullPointerException e) {
Log.v(getString(R.string.app_name), e.getMessage()); // 로그에 에러메시지 기록
}
}
public void updateSongList() {
File musicfiles = new File(MEDIA_PATH);
ArrayAdapter<String> musicList = new ArrayAdapter<String>(this,R.layout.music_item,songs);
if (musicfiles.listFiles( new Mp3Filter()).length > 0) {
for (File file : musicfiles.listFiles( new Mp3Filter())) {
songs.add(file.getName()); // mp3파일을 ArrayList에 추가
}
setListAdapter(musicList); // ArrayAdapter를 ListView에 바인딩
}
}
}
코드에서 Mp3Filter 클래스는 FileNameFilter 클래스를 사용해서 mp3파일을 찾아내는 역할을 합니다. accept 매서드는 abstract 메서드로서 파일명에서 endsWith메서드를 이용해 mp3확장자를 가지고 있는지 여부를 true or false로 리턴해 줍니다.
MyMusicPlayer 클래스는 ListActivity를 상속받아서 생성합니다.
MEDIA_PATH 변수에 MP3파일의 경로('/sdcard/')를 지정했습니다.
updateSongList 메서드에서는 지정된 경로에 mp3파일이 있는지 if문에서 체크해서 mp3파일이 있으면 for문안에서 ArrayList인 song에 추가합니다. 그리고 나서 setListAdapter(musicList); 부분에서 ArrayAdapter인 musicList를 ListView에 바인딩합니다.
5. Ctrl+F11 로 실행해 봅니다.
[ mp3 파일이 없는 상태 ]
[ mp3 파일이 있는 경우 목록 출력 ]
다음 강좌에서는 mp3 목록에서 한개의 파일을 클릭해서 mp3를 플레이 하는 코드를 작성해 보겠습니다.
'안드로이드개발강좌' 카테고리의 다른 글
MD5사용하기 (0) | 2012.09.12 |
---|---|
Hex To RGB, RGB To Hex, 색상표 (2) | 2012.08.20 |
MP3 플레이어 만들기 2 - MP3 플레이어의 시작 (5) | 2010.03.30 |
MP3 플레이어 만들기 1 - AVD에서 MP3 듣기 (8) | 2010.03.25 |
그래픽 2D 6 - ACTION_DOWN 사용하기 (4) | 2010.03.16 |