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, nullnullnull);

                               

                                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;

                     }

           }

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()