Je construis une application Google Maps. J'ai différents objets avec des coordonnées mais chaque objet a une valeur int unique que je voudrais voir à côté d'un marqueur. Par exemple pour un objet avec des coordonnées spécifiques et la valeur 123, je voudrais mettre sur la carte (à ces coords) le marqueur et à côté de lui la valeur 123.
J'ai fait quelques recherches et la seule façon trouvé plausible est d'utiliser une API Android pour créer votre propre image bitmap à partir d'une image de base et une chaîne qui est "attachée" et l'utiliser pour l'icône du marqueur.
Y a-t-il une meilleure façon de faire cela?
Sur le même sujet, vous montrez le titre de chaque marqueur sur votre carte en même temps?Existe-t-il un moyen de personnaliser chaque marqueur Google Maps dans Android Studio?
0
A
Répondre
1
https://stackoverflow.com/a/14812104
S'il vous plaît voir le lien. Le snipet est utilisé pour ajouter du texte sur le fabricant qui peut également être personnalisé.
1
Oui @kisslory vous pouvez entièrement personnaliser chaque marqueur en fonction de vos besoins.
Lors de la définition du bitmap pour chaque marqueur, vous pouvez créer un nouveau bitmap à partir d'une ressource donnée en utilisant la méthode ci-dessous.
public static Bitmap drawTextToBitmap(Context gContext,
int gResId,
String gText) {
Resources resources = gContext.getResources();
float scale = resources.getDisplayMetrics().density;
Bitmap bitmap =
BitmapFactory.decodeResource(resources, gResId);
android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
// set default bitmap config if none
if(bitmapConfig == null) {
bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
}
// resource bitmaps are imutable,
// so we need to convert it to mutable one
bitmap = bitmap.copy(bitmapConfig, true);
Canvas canvas = new Canvas(bitmap);
// new antialised Paint
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
// text color - #3D3D3D
paint.setColor(Color.rgb(61, 61, 61));
// text size in pixels
paint.setTextSize((int) (14 * scale));
// text shadow
paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);
// draw text to the Canvas center
Rect bounds = new Rect();
paint.getTextBounds(gText, 0, gText.length(), bounds);
int x = (bitmap.getWidth() - bounds.width())/2;
int y = (bitmap.getHeight() + bounds.height())/2;
canvas.drawText(gText, x, y, paint);
return bitmap;
}
Oui @kisslory vous pouvez entièrement personnaliser chaque marqueur en fonction de vos besoins. –