2013-09-24 9 views
9

Ich arbeite an nativen Android-App, die die neueste GoogleMap-API (V2) implementiert, und ich muss Accessibility-Beschwerde machen (so viel wie ich kann) .wie man contentDescription zu InfoWindow oder Marker in Android hinzufügen GoogleMaps V2 für TalkBack

Ich kann das Attribut contentDescription der mapView hinzufügen und es funktioniert gut - TalkBack erkennt es.

Wenn ich jedoch das gleiche Attribut zu den Layouts des Markers oder InfoWindow hinzufügen, wird es von TalkBack ignoriert.

Scheint so, als ob GoogleMap das überhöhte Layout nur intern in eine Bitmap rendert und dieses Bitmap oben auf der Kartenansicht anzeigt, wobei das contentDescription-Attribut ignoriert wird. Daher sagt TalkBack nichts, wenn auf das entsprechende Bild geklickt wird.

Jeder hat eine andere Erfahrung oder Wissen, wie man containDescription zum InfoWindow oder Marker mit der neuesten GoogleMap hinzufügt?

Danke.

+0

Ich vermute, dass dies ein Loch in der Maps V2 API ist. Sie könnten in Erwägung ziehen, ein Problem zu melden, da die Maps-Teams ziemlich gut darin sind, auf gute Probleme zu reagieren: http://code.google.com/p/gmaps-api-issues/issues/list – CommonsWare

+0

Danke, das habe ich gerade getan. Ich hoffe immer noch, dass es vielleicht einen Defekt gibt ... :-) – user1512464

+0

Haben Sie eine Lösung gefunden? –

Antwort

0

Meinst du Design ein neues Info-Fenster? Sie sollten zunächst eine XML-Layout-Datei, dann schreiben:

map.setInfoWindowAdapter(new InfoWindowAdapter() { 
     // Use default InfoWindow frame 
     @Override 
     public View getInfoWindow(Marker arg0) { 
      return null; 
     } 

     // Defines the contents of the InfoWindow 
     @Override 
     public View getInfoContents(Marker arg0) { 
      String namepic = arg0.getTitle(); 
      // Getting view from the layout file info_window_layout 
      View v = getLayoutInflater() 
        .inflate(R.layout.info_window, null); 
      LatLng latLng = arg0.getPosition(); 
      // Getting the position from the marker 

      TextView tvtitle = (TextView) v.findViewById(R.id.tv_title); 
      TextView tvLat = (TextView) v.findViewById(R.id.tv_lat); 
      TextView tvLng = (TextView) v.findViewById(R.id.tv_lng); 
      ImageView myimage = (ImageView) v.findViewById(R.id.my_image); 

      tvtitle.setText(arg0.getTitle()); 
      tvLat.setText("Latitude:" + latLng.latitude); 
      tvLng.setText("Longitude:" + latLng.longitude); 
      // Returning the view containing InfoWindow contents 
      myimage.setImageResource(getResources().getIdentifier(namepic, 
        "drawable", getPackageName())); 
      return v; 
     } 
    }); 
0

Für Marker, verwendet i marker.setTitile() und es funktionierte, noch nicht wissen, wie Infowindow funktioniert zu machen.

0

Was wir in einem alten Projekt gemacht haben, war, die Inhaltsbeschreibung programmatisch zu erstellen und anzukündigen, wenn wir den markierten Klick-Callback erhalten.

Sie können AccessibilityManager, AccessibilityRecordCompat und AccessibilityEvent überprüfen.

Aber es gibt keine Fokusnavigation (navigieren Sie wischen links-rechts oder rechts-links) unterstützt derzeit im SDK für Info-Markierungen. Focus Navigation ist sehr häufig für blinde Menschen zu benutzen.

Grüße.

Verwandte Themen