Je veux créer un sable, qui consiste en une broche de carte (bulle) et du texte. La bulle devrait être à l'arrière-plan et le texte au premier plan.
Ce digue doit être transmis dans super(drawable)
de la classe BalloonItemizedOverlay
qui s'étend ItemizedOverlay<Item>
.
En d'autres termes, je veux montrer du texte dans la bulle qui apparaît sur la carte.
J'utilise le Hello MapView tutoriel
Cette méthode prend un sable de vos ressources, dessine du texte sur le dessus et renvoie le nouveau destinataire. Tout ce que vous avez à faire est de lui donner l'ID de ressource de votre bulle et du texte que vous souhaitez sur le dessus. Ensuite, vous pouvez passer le retourné introduit où que vous sachiez.
public BitmapDrawable writeOnDrawable(int drawableId, String text){
Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId).copy(Bitmap.Config.ARGB_8888, true);
Paint paint = new Paint();
Paint.setStyle(Style.FILL);
Paint.setColor(Color.BLACK);
Paint.setTextSize(20);
Canvas canvas = new Canvas(bm);
canvas.drawText(text, 0, bm.getHeight()/2, Paint);
return new BitmapDrawable(bm);
}
Pour conserver la densité, vous avez besoin de ce constructeur
BitmapDrawable (Resources res, Bitmap bitmap)
Donc, garder votre contexte, le dernier retour devrait être quelque chose comme
return new BitmapDrawable(context.getResources(), bm);
Cela empêche un redessinement redimensionné.