import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
import android.view.View;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class MusicListAdapter extends SimpleCursorAdapter {
private static boolean[] isFocused ;
private static int whichClick = -1;
public MusicListAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) {
super(context, layout, c, from, to);
isFocused = new boolean[c.getCount()];
for(int i=0;i<c.getCount();i++){
isFocused[i] = false;
}
}
public void changeBg(int position){
isFocused[whichClick==-1?0:whichClick] = false;
whichClick = position;
isFocused[position] = true;
notifyDataSetChanged();
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView m_name = (TextView) view.findViewById(R.id.m_name);
TextView m_artist = (TextView) view.findViewById(R.id.m_artist);
TextView m_time = (TextView) view.findViewById(R.id.m_time);
TextView m_size = (TextView)view.findViewById(R.id.m_size);
String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
m_name.setText(title.length()>14?title.substring(0, 14)+"...":title);
m_artist.setText(cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)));
int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
int min = (duration / 1000) / 60;
int sec = (duration / 1000) % 60;
m_time.setText(min+":"+sec);
int size = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
size =(int)(((float)size/1024)/1024*100);
float fs = (float)size/100;
m_size.setText(fs+"M");
view.setBackgroundResource(isFocused[cursor.getPosition()]?android.R.drawable.alert_light_frame:android.R.drawable.alert_dark_frame);
super.bindView(view, context, cursor);
}
调用代码
mCursor =getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,
null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
musicadapter = new MusicListAdapter(PlayMusic.this,
R.layout.playmusic, mCursor, new String[] {}, new int[] {});
R.layout.playmusic:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <!-- 歌曲名 --> <TextView android:id="@+id/m_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20px" android:layout_alignParentLeft="true" /> <!-- 歌手 --> <TextView android:id="@+id/m_artist" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15px" android:layout_below="@id/m_name" /> <!-- 播放时间 --> <TextView android:id="@+id/m_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15px" android:paddingTop="5px" android:layout_alignRight="@id/m_name" android:layout_alignParentRight="true" /> <!-- 大小 --> <TextView android:id="@+id/m_size" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15px" android:layout_below="@id/m_time" android:layout_alignParentRight="true" /> </RelativeLayout>