2013-09-24 30 views
9

Pracuję nad natywną aplikacją dla systemu Android, która implementuje najnowszy interfejs API GoogleMap (V2), i muszę ją uprościć (tak bardzo, jak tylko mogę) .jak dodać contentDesctiption do InfoWindow lub markera w Androidzie GoogleMaps V2 dla TalkBack

mogę dodać atrybut content Opis do MapView i działa dobrze - TalkBack rozpoznaje go.

Jednak kiedy dodać ten sam atrybut do układów markera lub InfoWindow, to jest po prostu ignorowana przez mową.

Wygląda na to, że GoogleMap po prostu renderuje zawyżony układ wewnętrznie do bitmapy i pokazuje tę bitmapę na szczycie widoku mapy, ignorując atrybut contentDescription. W rezultacie TalkBack nic nie mówi po kliknięciu odpowiedniego obrazu.

Każdy ma inne doświadczenia lub wiedzy, jak dodać content Opis do InfoWindow lub znacznik z najnowszymi kalkulacji?

Dzięki.

+0

Podejrzewam, że jest to dziura w API Map V2. Możesz zgłosić problem, ponieważ zespoły Map dość dobrze reagują na dobre problemy: http://code.google.com/p/gmaps-api-issues/issues/list – CommonsWare

+0

Dzięki, właśnie to zrobiłem. Nadal mam nadzieję, że być może jest praca nad tą wadą ... :-) – user1512464

+0

Znalazłeś rozwiązanie? –

Odpowiedz

0

Czy chodzi ci o zaprojektowanie nowego okna informacyjnego? Najpierw należy zapisać plik układu .xml, a następnie:

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

Dla markera użyłem marker.setTitile() i to działało, nadal nie wiem jak zrobić InfoWindow działa.

0

Co zrobiliśmy w starym projektu było programowo zbudować i ogłosić opis treści po otrzymaniu znacznik kliknięciu zwrotnego.

Można sprawdzić AccessibilityManager, AccessibilityRecordCompat i AccessibilityEvent.

Ale nie ma nawigacji ostrości (nawigacja przesuwając lewą prawo lub w lewo) wsparcie aktualnie w SDK Informacje markerów. Fokus nawigacji jest bardzo często używany przez niewidomych.

Pozdrawiam.