Dans la Démo de l'API Google Maps v2, il y a une classe MarkerDemoActivity
dans laquelle vous pouvez voir comment une image personnalisée est définie pour une GoogleMap.
// Utilise une icône personnalisée.
mSydney = mMap.addMarker(new MarkerOptions()
.position(SYDNEY)
.title("Sydney")
.snippet("Population : 4 627 300")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));
Comme cela remplace simplement le marqueur par une image, vous voudrez peut-être utiliser un Canvas
pour dessiner des choses plus complexes et plus fantaisistes :
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
Bitmap bmp = Bitmap.createBitmap(80, 80, conf);
Canvas canvas1 = new Canvas(bmp);
// paint définit la couleur du texte, la largeur du trait et la taille
Paint color = new Paint();
color.setTextSize(35);
color.setColor(Color.BLACK);
// modifier le canvas
canvas1.drawBitmap(BitmapFactory.decodeResource(getResources(),
R.drawable.user_picture_image), 0,0, color);
canvas1.drawText("Nom de l'utilisateur !", 30, 40, color);
// ajouter un marqueur à la carte
mMap.addMarker(new MarkerOptions()
.position(POSITION_UTILISATEUR)
.icon(BitmapDescriptorFactory.fromBitmap(bmp))
// Spécifie l'ancre à un point particulier dans l'image du marqueur.
.anchor(0.5f, 1));
Cela dessine le Canvas canvas1
sur le GoogleMap mMap
. Le code devrait (principalement) se comprendre de lui-même, il existe de nombreux tutoriels expliquant comment dessiner un Canvas
. Vous pouvez commencer en regardant la documentation sur le Canvas et les Drawables de la page des développeurs Android.
Maintenant, vous voulez également télécharger une image depuis une URL.
URL url = new URL(url_image_utilisateur);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
Vous devez télécharger l'image depuis un thread de fond (vous pourriez utiliser AsyncTask ou Volley ou RxJava pour cela).
Après cela, vous pouvez remplacer BitmapFactory.decodeResource(getResources(), R.drawable.user_picture_image)
par votre image téléchargée bmImg
.