J'ai versé sur les docs et n'ai pas été en mesure de comprendre cela. Est-ce même possible?Comment puis-je utiliser un bitmap personnalisé pour le point "Vous êtes ici" dans un MyLocationOverlay?
Répondre
Il semble que le mécanisme approprié pour ce faire est d'étendre MyLocationOverlay puis passer outre la méthode protégée drawMyLocation().
qui suit utilise une flèche pour montrer où « vous » êtes et de quelle manière « vous » désignez:
package com.example;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Point;
import android.location.Location;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
public class MyCustomLocationOverlay extends MyLocationOverlay {
private Context mContext;
private float mOrientation;
public MyCustomLocationOverlay(Context context, MapView mapView) {
super(context, mapView);
mContext = context;
}
@Override
protected void drawMyLocation(Canvas canvas, MapView mapView, Location lastFix, GeoPoint myLocation, long when) {
// translate the GeoPoint to screen pixels
Point screenPts = mapView.getProjection().toPixels(myLocation, null);
// create a rotated copy of the marker
Bitmap arrowBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.arrow_green);
Matrix matrix = new Matrix();
matrix.postRotate(mOrientation);
Bitmap rotatedBmp = Bitmap.createBitmap(
arrowBitmap,
0, 0,
arrowBitmap.getWidth(),
arrowBitmap.getHeight(),
matrix,
true
);
// add the rotated marker to the canvas
canvas.drawBitmap(
rotatedBmp,
screenPts.x - (rotatedBmp.getWidth()/2),
screenPts.y - (rotatedBmp.getHeight()/2),
null
);
}
public void setOrientation(float newOrientation) {
mOrientation = newOrientation;
}
}
J'ai fait quelques modifications au code previuos afin de le faire fonctionner correctement parce que la flèche pointait dans la mauvaise direction et tournait dans la direction opposée.
j'ai changé
matrix.postRotate(mOrientation);
pour
matrix.postRotate(this.getRotation());
et ajouté à la fin:
mapView.postInvalidate();
pour redessiner la flèche quand il change
Comment avez-vous implémenté getRotation()? merci – marimaf
'getRotation()' est déjà implémenté dans 'MyLocationOverlay' –
On dirait qu'il a été changé en getOrientation() –
- 1. Comment utilisez-vous Machine.config, ou êtes-vous?
- 2. Comment êtes-vous supposé accéder à un DataGridView dans un formulaire?
- 3. C#: comment utiliser un objet TreeView personnalisé?
- 4. L'interactivité où êtes-vous parti?
- 5. êtes-vous censé utiliser les deux NIC sur un serveur Linux?
- 6. Comment faire un "document ici" dans Ant?
- 7. "Coloriser" un bitmap dans .NET
- 8. FQL lorsque vous êtes déconnecté
- 9. Comment implémentez-vous un filtre personnalisé avec Lucene.net?
- 10. Grails - utiliser un taglib JSP personnalisé
- 11. Copier un bitmap sur une plus grande Bitmap en utilisant sans utiliser Graphics.DrawImage
- 12. Comment forcez-vous le rang sur un noeud dans le point?
- 13. Vous voulez créer un rapport ordinaire (codage ici pour le rapport crytal)
- 14. Devrais-je utiliser un curseur de référence ici?
- 15. Comment utiliser un framework personnalisé avec des objets dans JQuery
- 16. Développement OpenId lorsque vous êtes déconnecté d'Internet
- 17. Comment simuler un point d'arrêt Delphi dans le code?
- 18. Quels fichiers êtes-vous autorisé à modifier dans SharePoint 2007?
- 19. Trouver un point dans un polygone complexe
- 20. Comment pouvez-vous déterminer dans quel Sharepoint WebPartZone vous êtes à partir d'un fichier XSL pour générer dynamiquement le style?
- 21. si vous avez une DLL créant un bitmap en mémoire, comment le renvoyer au navigateur?
- 22. Comment obtenez-vous un code personnalisé pour rendre l'utilisation HtmlHelper dans MVC
- 23. Restaurer à un point dans le temps
- 24. Comment fournir un code personnalisé pour InitializeComponent?
- 25. Pouvez-vous utiliser le mot-clé params dans un délégué?
- 26. Comment pouvez-vous étendre la classe Bitmap
- 27. Comment obtenir un numéro Digicode avec un point dans l'iPhone
- 28. Avez-vous un environnement de développement Rails sous Windows avec lequel vous êtes satisfait?
- 29. Comment dessiner un bitmap avec 50% d'opacité?
- 30. Comment spécifier un emplacement personnalisé pour crossdomain.xml dans actionscript?
j'ai pu changer la bitmap, mais la rotation n'est pas – marimaf