2014-05-24 77 views
0

我正在爲Android的音樂播放器應用程序。我試圖使用畢加索(一個外部庫)來有效地加載專輯藝術。但專輯藝術沒有得到顯示。代碼中沒有錯誤,項目編譯正確,但圖像未顯示。
要做到這一點,我要從「MediaStore.Audio.AlbumColumns.ALBUM_ART」獲取專輯藝術Uri。然後我用這在我的名單適配器的getView()方法:使用畢加索加載音樂播放器應用程序的專輯藝術android

Picasso.with(上下文).load(Uri.parse(album_art_uri))到(myImageView);

我不知道這裏有什麼問題嗎?請幫我弄明白。

+0

您可以使用Android Query也是非常易於使用且響應速度最快的。 –

+0

我之前使用的是Android查詢,但它會加載圖像位圖,因此會消耗大量內存,並且也會降低應用程序的速度。有人建議我使用畢加索,這就是爲什麼要試一試。無論如何感謝您的快速回復。 – Anjani

+0

啊,但爲什麼你下載位圖的android查詢,你可以直接加載圖像到你的ImageView Anjani,它真的非常好響應然後畢加索這就是爲什麼我建議it.If你沒有示例代碼,然後讓我給你。 –

回答

3
Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    Cursor musicCursor = musicResolver.query(musicUri, null, null, null, 
      null); 
int album_id = musicCursor.getColumnIndex(android.provider.MediaStore.Audio.Media.ALBUM_ID);  
cursor = managedQuery(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, 
        new String[] {MediaStore.Audio.Albums._ID, MediaStore.Audio.Albums.ALBUM_ART}, 
        MediaStore.Audio.Albums._ID+ "=?", 
        new String[] {musicCursor.getString(album_id)}, 
        null); 
      if (cursor.moveToFirst()) { 
       thisAlbumArt = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ART)); 
      } 

然後與畢加索加載在你的getView(如下),它爲我工作,但它是緩慢

Picasso.with(mContext) 
.load(Uri.parse("file://"+thisAlbumArt)) 
.resize(220,220) 
.noFade().centerCrop() 
.error(R.drawable.music) 
.placeholder(R.drawable.blank_img) 
.into(yourImageView); 

參考鏈接:

How can I display Album Art using MediaStore.Audio.Albums.ALBUM_ART?

相關問題