ในฟังก์ชั่นของฉัน:
public void getPointMarkerFromUrl(final String url, final OnBitmapDescriptorRetrievedListener listener) {
final int maxSize = context.getResources().getDimensionPixelSize(R.dimen.icon_max_size);
Target t = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
if (bitmap != null)
listener.bitmapRetrieved(getBitmapDescriptorInCache(url, bitmap));
else
loadDefaultMarker(listener);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
loadDefaultMarker(listener);
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
Picasso.with(context)
.load(url)
.resize(maxSize, maxSize)
.into(t);
}
onBitmapLoaded () ไม่เคยถูกเรียกในครั้งแรกที่ฉันโหลดรูปภาพ ฉันได้อ่านหัวข้อเช่นhttps://github.com/square/picasso/issues/39ซึ่งแนะนำให้ใช้วิธีการดึงข้อมูล (Target t) (ดูเหมือนว่าจะเป็นปัญหาของการอ้างอิงที่อ่อนแอ ... ) แต่ฟังก์ชันนี้ ไม่มีใน picasso รุ่นล่าสุด (2.3.2) ฉันมีเพียงวิธีการดึงข้อมูล () แต่ฉันไม่สามารถใช้ใน (Mytarget) ได้ในเวลาเดียวกัน
คุณช่วยอธิบายวิธีใช้ fetch () กับเป้าหมายที่กำหนดเองได้ไหม ขอบคุณ.
เอกสาร: http://square.github.io/picasso/javadoc/com/squareup/picasso/RequestCreator.html#fetch--