所以我目前正在研究在畢加索圖書館裏用畢加索圖書館替代大量自定義圖片加載AsyncTask
的可能性,它看起來很有希望。然而,有一個問題我不完全確定如何使用畢加索解決。加載之前的畢加索圖片url查找
在這種情況下,我們正在爲音樂曲目下載專輯封面,但是當我們的ListView要顯示時,我們只有曲目ID。首先,我們必須根據曲目ID查找專輯封面的URL,然後將其加載到ImageView中。目前我們有一個AsyncTask
,我們在doInBackground()
首先查找圖像的URL,然後加載一個Bitmap
,然後粘貼到onPostExecute
。
是否有任何方法使用畢加索進行預先查找,或者我們必須將首次執行查找的中的畢加索調用包裝起來(並且感覺它有點違背目的)。
更新:它是如何工作現在:
private class AlbumArtTask extends AsyncTask<String, Bitmap, Bitmap> {
@Override
protected Bitmap doInBackground(String... strings) {
final String id = strings[0];
// This part is what I'm asking for, basically to be able to make an Async
// lookup of the url that will later be used by Picasso
final Uri uri = getAlbumArtUriFromTrackId(id);
// Creating the Bitmap and return it to be used in an ImageView
// This part is handled by Picasso
return bitmap = createBitmapFromUri(uri);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
// load image into ImageView
}
}
更新2:由例如我後
Picasso.with(mContext)
.load(new UriProvider() {
// Get the actual image URI here
public Uri getImageUri() {
return getAlbumArtUriFromTrackId(id);
}
})
// And load it here
.into(mImageView);
什麼是查找裝貨前的目的是什麼? – fida1989
是否因爲您需要位圖用於其他目的?如果是這種情況,可以直接從imageview中獲取。 –
預查找是什麼意思?您必須從本地存儲器顯示佔位符,或者必須顯示其他原始服務器的預查找圖像。 –