7
votes

Google Maps Android API V2, Titre du marqueur / Snippet Mauvais Affichage

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.

Le problème est que les noms non-anglais au titre / extrait sont montrés à l'échec. Pour l'instance, les noms hébreux.

Le Sreenshot est attaché.

Capture d'écran)


7 commentaires

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 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 Avez-vous de l'expérience avec Mettre en œuvre InfoWindowAdapter 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


3 Réponses :


13
votes

É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 InfoWindowAdapter Code> et ayant getinfocontents () code> renvoie la vue code> que vous souhaitez utiliser dans la fenêtre d'information. P>

Par exemple, Cet exemple de projet (de la mise à jour de demain à mon livre) montre la personnalisation de la fenêtre d'information Utilisation de ce 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);
  }
}


6 commentaires

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 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




0
votes

J'ai remarqué que ce bogue ne se produit que sur linearlayout (qui est très bizarre).

Essayez plutôt relativenellement ou, si vous avez API 17 et ci-dessus, définissez TextDirection pour chacun des Views, et il devrait fonctionner


0 commentaires