J'utilise Google Maps Android API V2 avec Android pour montrer la position actuelle avec les marqueurs à proximité. Les emplacements et les titres à proximité sont reçus avec Google Places API. P>
Le problème est que les noms non-anglais au titre / extrait sont montrés à l'échec. Pour l'instance, les noms hébreux. P>
Le Sreenshot est attaché. P>
) P>
3 Réponses :
Étant donné que l'arabe et l'hébreu causent des problèmes, et l'anglais et le russe ne sont pas, je vais deviner que quelque chose est brisé dans la mise en œuvre de la fenêtre d'informations par défaut par rapport aux langues de droite à gauche (RTL). En particulier si vous exécutez vos tests sur Android 4.2, il se peut que le contenu de la fenêtre d'information par défaut de Maps V2 ait appliqué de manière incorrecte les différents attributs liés à RTL.
Heureusement, vous pouvez fournir votre propre contenu de la fenêtre d'information, en implémentant Par exemple, InfoWindowAdapter Code> et ayant
getinfocontents () code> renvoie la vue code> que vous souhaitez utiliser dans la fenêtre d'information. P>
InfoWindowAdapter Code>: P>
class PopupAdapter implements InfoWindowAdapter {
LayoutInflater inflater=null;
PopupAdapter(LayoutInflater inflater) {
this.inflater=inflater;
}
@Override
public View getInfoWindow(Marker marker) {
return(null);
}
@Override
public View getInfoContents(Marker marker) {
View popup=inflater.inflate(R.layout.popup, null);
TextView tv=(TextView)popup.findViewById(R.id.title);
tv.setText(marker.getTitle());
tv=(TextView)popup.findViewById(R.id.snippet);
tv.setText(marker.getSnippet());
return(popup);
}
}
Je n'aura que ajouter que dans mon cas, je devrais en faire de cette manière: @override Public View getinfocontents (marqueur) {TextView Info = Nouveau TextView (ShareLocation.C'est); info.setlayoutparams (nouveau framelayout.layoutparams (framelayout.layoutparams.match_pare NT, framelayout.layoutparams.match_parent)); info.setText (marqueur.gettitle () + "\ n" + marqueur.getsnippet ()); Info.SetTextColor (Sharelocession.Cela.GetResources (). GetC Olor (R.color.black)); Informations de retour; } Fonctionne belle. Et le secret principal est pourquoi Google a manqué de cette façon :-)
@OLEGPREBRAZHENSKYY, où vous pouvez faire du travail en hébreu? J'essaie avec ma propre mise en page à l'aide de Getinfowindow, et tandis que l'anglais semble bien, Hébreu dans TextView n'est pas voit du tout ... Toute aide serait appréciée
@Commonsware est là un moyen de définir une chaîne UTF8? (Arabe lang)
@ MM_MAMIAN: AFAIK, TextView code> prend en charge les chaînes arabes. Si vous rencontrez des problèmes, posez une question de dépassement de pile frais montrant votre code, avec peut-être une capture d'écran illustrant les problèmes que vous rencontrez.
@Commonsware pour l'hébreu, cela ne fonctionne pas. Afin de le faire fonctionner, je devais ajouter Android: TextDirection = "Locale" pour chacun des Views. Je n'ai aucune idée si cela fonctionne bien sur Pre-API 17.
Il semble que Google résolue le problème en fonction du bogue signalé: issuTracker.google.com/issues/35823358 a>
Ajout de plus d'informations concernant la réponse de communsware Réponse:
À compter du moment où j'écris ce fait, il semble que la carte elle-même est Notez que j'utilise la direction de la disposition de la locale et non la direction héritée. J'ai commenté ceci sur le rapport de bogue Google correspondant ici: https://code.google.com/p/gmap-api-issues/issues/dettail?id=5608#makechanges P> p> layout_direction = "ltr" code> ce qui signifie que vos titres ne seront pas retourné sur des ordinateurs de bureau RTL. La solution est simple: p>
"LayoutDirection" est disponible auprès de l'API 17. Que se passerait-il auparavant? De plus, je pense que cela ne fonctionne que lors de la définition de TextDirection pour le TextViews.
Ce problème ne semble pas être réparé, même s'il est 2020. La seule chose qui a fonctionné pour moi est ce commentaire.
J'ai remarqué que ce bogue ne se produit que sur linearlayout (qui est très bizarre). P>
Essayez plutôt relativenellement ou, si vous avez API 17 et ci-dessus, définissez TextDirection pour chacun des Views, et il devrait fonctionner P>
Il se peut que les cartes V2 ne disposent pas d'un support RTL approprié. Avez-vous rencontré des problèmes avec les langues LTR?
Bien sûr que je ne suis pas, mate. Semble que le problème ne s'applique qu'à I18N.
Encore une fois, ma théorie n'est pas I18N en général, mais RTL vs LTR Langues. Le support RTL approprié est relativement nouveau dans Android et les cartes V2 peuvent l'avoir gâché. Vous pouvez utiliser un
InfoWindowAdapter Code> pour créer votre propre contenu de la carte de la carte, où vous faites un meilleur travail que les trucs intégrés avec RTL.
Peut-être que tu as raison. Je pense que c'est aussi que c'est une question RTL. Mais écoutez que je n'ai pas d'emplacement de données approprié pour vérifier toutes les langues ou surtout tout .. Néanmoins anglais, les russes ont de bonnes looks. L'arabe, l'hébreu n'est pas. Toutes les choses sont contre RTL, à droite.
Cela ressemble certainement à un problème de RTL.
@commonsware CODE> Avez-vous de l'expérience avec Mettre en œuvre
InfoWindowAdapter Code> pour partager? Je vais accepter votre réponse que.
Hey Oleg, im en utilisant aussi Google Maps Android API V2 pour Google Maps. et im essayant d'utiliser des endroits API, mais lorsque je posterai la demande, le retour d'Accès. Ma question si vous utilisez la même clé de Google Maps Android API V2 pour la demande de Google Des endroits tels que MAPS.GOOGLEAPIS.COM/MAPS/API/PLACE/NEARBYSECH /... KEY> Merci GIL