FROM:http://blog.daum.net/satomail/155
public class AudioAdapter extends BaseAdapter {
private ArrayList<String> mAlbumTitleList;
private ArrayList<Long> mAlbumIdList;
public AudioAdapter(Context ctx) {
mContext = ctx;
mAlbumTitleList = new ArrayList<String>();
mAlbumIdList = new ArrayList<Long>();
getAudioInfo();
}
@Override
public int getCount() {
return mAlbumTitleList.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
public Bitmap getAlbumArt(long albumId)
{
Uri artworkUri = Uri.parse("content://media/external/audio/albumart");
Uri uri = ContentUris.withAppendedId(artworkUri, albumId);
ContentResolver cr = mContext.getContentResolver();
InputStream in = null;
try {
in = cr.openInputStream(uri);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Bitmap artwork = BitmapFactory.decodeStream(in);
return artwork;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
TextView tv;
View v;
if(convertView == null)
{
v = getLayoutInflater().inflate(R.layout.music_tab1_list_row, null);
}
else {
v = convertView;
}
imageView = (ImageView) v.findViewById(R.id.music_tab1_list_image);
tv = (TextView) v.findViewById(R.id.music_tab1_list_text);
imageView.setAdjustViewBounds(false);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(2, 2, 2, 2);
BitmapFactory.Options bo = new BitmapFactory.Options();
bo.inSampleSize = 8;
Bitmap bm = getAlbumArt(mAlbumIdList.get(position));
imageView.setImageBitmap(bm);
String text = mAlbumTitleList.get(position);
tv.setText(text);
return v;
}
private void getAudioInfo() {
String[] proj =
{
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media._ID
};
Cursor audioCursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, null, null);
if(audioCursor != null && audioCursor.moveTo!First())
{
String albumTitle;
Long albumId;
int albumTitleCol = audioCursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
int albumIdCol = audioCursor.getColumnIndex(MediaStore.Audio.Media._ID);
int num = 0;
do {
albumTitle = audioCursor.getString(albumTitleCol);
albumId = audioCursor.getLong(albumIdCol);
num++;
if(albumTitle != null) {
mAlbumTitleList.add(albumTitle);
mAlbumIdList.add(albumId);
}
} while(audioCursor.moveTo!Next());
}
audioCursor.close();
return;
}
}
留言列表