我試圖將圖像加載到我的視圖中。有時它起作用,有時它不起作用。我正在API級別19模擬器上測試。新的Target內部的故障塊永遠不會被調用。我看到prepareLoad
,然後或者:加載畢加索的圖像並不總是顯示
onBitmapLoaded
被調用時,圖像會顯示- 圖像不會顯示
爲什麼會這樣發生?
這發生在模擬器上。在物理設備上,Q & A報告了100%的故障率。在其他設備上,我看到間歇性故障率。這裏發生了什麼?
public void setBackground() {
final LinearLayout mainLayout = (LinearLayout) findViewById(R.id.main_layout);
final Context context = this;
final String imagePath = getStore().backgroundImageURI;
if (getStore().backgroundImageNumber > 0) {
mainLayout.setBackground(context.getResources().getDrawable(getStore().backgroundImageNumber));
return;
}
if (imagePath == null) {
mainLayout.setBackground(context.getResources().getDrawable(R.drawable.sk_collection_bg_default));
return;
}
Picasso.with(this).load(imagePath).into(new Target(){
@Override
public void onBitmapLoaded(Bitmap bitmap, LoadedFrom from) {
Log.v("Biscuit-width", String.valueOf(bitmap.getWidth()));
Log.v("Biscuit-height", String.valueOf(bitmap.getHeight()));
mainLayout.setBackground(new BitmapDrawable(context.getResources(), bitmap));
}
@Override
public void onBitmapFailed(final Drawable errorDrawable)
{
Log.d("BISCUIT", "FAILED" + errorDrawable.toString());
}
@Override
public void onPrepareLoad(final Drawable placeHolderDrawable) {
Log.d("TAG", "Prepare Load");
}
});
}
我沒有看到任何異常記錄 – quantumpotato