2015-05-02 4 views
1

привет, я хочу сделать приложение для Android, для которого я хочу свой списокView, который показывает все песни, чтобы отобразить обложку альбома этой песни, имя исполнителя , продолжительность и название песниКак показать обложку альбома, название песни, продолжительность и имя исполнителя в ListView

я удалось показывать все песни в ListView, но не может отображать обложки альбомов т.д.,

так может кто-нибудь помочь мне в этом ??

Заранее благодарен

ответ

1

Для этого вы можете использовать контент-провайдер.

Надеюсь, что этот код поможет вам начать работу.

final Cursor mCursor = getContentResolver().query(
       MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
       new String[] { MediaStore.Audio.Media.DISPLAY_NAME, 
         MediaStore.Audio.Media.DATA, 
         MediaStore.Audio.Media.ARTIST, 
         MediaStore.Audio.Media.ALBUM_ID }, null, null, 
       "LOWER(" + MediaStore.Audio.Media.TITLE + ") ASC"); 

     int count = mCursor.getCount(); 

     String[] songs = new String[count]; 

     if (mCursor.moveToFirst()) { 
      do { 
       String songname = mCursor 
         .getString(mCursor 
           .getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME)); 
       String sonpath = mCursor.getString(mCursor 
         .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)); 
       String artistname = mCursor.getString(mCursor 
         .getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)); 
       String albumid = mCursor 
         .getString(mCursor 
           .getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID)); 
    } while (mCursor.moveToNext()); 
      Constant.sdCardmusic = allsongs; 
     } 

     mCursor.close(); 
} 

Если вы хотите получить фотоальбом, то вы можете передать идентификатор альбома, получая сверху код в поле ниже способом:

private Bitmap getArtistImage(String albumid) { 
     Bitmap artwork = null; 
     try { 
      Uri sArtworkUri = Uri 
        .parse("content://media/external/audio/albumart"); 
      Uri uri = ContentUris.withAppendedId(sArtworkUri, 
        Long.valueOf(albumid)); 
      ContentResolver res = mContext.getContentResolver(); 
      InputStream in = res.openInputStream(uri); 
      artwork = BitmapFactory.decodeStream(in); 

     } catch (Exception e) { 
      Log.e("Exception", e.toString()); 
     } 
     return artwork; 
    } 
+0

добро пожаловать. –

+0

есть полный рабочий пример, на который можно ссылаться для обучения – 1234567

Смежные вопросы