Ole*_*koz 7 android google-maps internationalization google-places-api
我在Android上使用Google Maps Android API v2来显示附近标记的当前位置.使用Google Places API接收附近的地点位置和标题.
问题是title/snippet上的非英文名称以失败的方式显示.例如,希伯来名字.
附带了sreenshot.
)
Com*_*are 13
由于阿拉伯语和希伯来语都会导致问题,而英语和俄语都没有,我猜测默认信息窗口实现中有关于从右到左(RTL)语言的问题.特别是如果您在Android 4.2上运行测试,可能是Maps V2的默认信息窗口内容错误地应用了各种与RTL相关的属性.
幸运的是,您可以通过实现InfoWindowAdapter并在信息窗口中getInfoContents()返回View要使用的内容来提供自己的信息窗口内容.
例如,这个示例项目(从明天的更新到我的书)显示使用以下方法自定义信息窗口InfoWindowAdapter:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想要替换整个窗口,你将getInfoWindow()返回一个View.如果getInfoWindow()返回null,getInfoContents()则用于窗口的内容.然后,附加的一个实例InfoWindowAdapter通过setInfoWindowAdapter()你的GoogleMap.
在您的情况下,您可以使用自己的布局来确保正确实现RTL.原则上,这应该解决这个问题.可以想象,Maps V2做了一些奇怪的事情,破坏了通常应该工作的RTL代码,在这种情况下你需要提出问题.
| 归档时间: |
|
| 查看次数: |
6038 次 |
| 最近记录: |