Der Marker besitzt eine Symboleigenschaft und enthält ein Bitmap des Facebook-Profilbilds des Benutzers. Ich bin nicht wirklich sicher, warum der erste Marker nicht geladen wird. Aber wenn du ein zweites, drittes oder viertes postest (usw.), funktioniert das ganz gut!Der erste GoogleMaps-Marker wird nicht angezeigt, der zweite jedoch
Ich habe keine anderen Markierungen in meinem Code als den unten stehenden Code hinzugefügt.
EDIT: Dies ist wichtig. Der "Bitmap" -Wert scheint beim ersten Versuch null zu sein. So scheint es, die if-Anweisung mit der Bedingung ‚Bitmap! = Null‘ ist es zu kontrollieren und es zu veröffentlichen die erste Markierung zu verhindern ...
static Bitmap bitmap = null;
private Target loadtarget;
globalMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng point) {
vibe.vibrate(100);
AccessToken accessToken = AccessToken.getCurrentAccessToken();
MarkerOptions marker = new MarkerOptions().position(
new LatLng(point.latitude, point.longitude))
.title("New Marker");
Log.e("TAG", accessToken.getUserId());
String imageURL = new String("https://graph.facebook.com/" + accessToken.getUserId() + "/picture?type=small");
loadBitmap(imageURL);
if(bitmap!=null) {
globalMap.addMarker(marker
.position(point)
.icon(BitmapDescriptorFactory.fromBitmap(bitmap))
.anchor(0.5f, 1));
}
}
});
}
public void loadBitmap(String url) {
if (loadtarget == null) loadtarget = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
// do something with the Bitmap
handleLoadedBitmap(bitmap);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
Picasso.with(getActivity()).load(url).into(loadtarget);
}
public void handleLoadedBitmap(Bitmap b) {
bitmap = b;
}
Nichts hat sich geändert, es überspringt immer noch den ersten Marker. – SaltySea