Android 1.6 Mapview在用户与地图交互之前不会显示流量

时间:2010-06-27 03:23:54

标签: android android-mapview

我有一个MapActivity。如果将其设置为适当的位置和缩放级别以查看流量​​,则在首次创建之后不显示,直到您与地图交互(单击,拖动等),此时流量将显示。当然,我希望流量在加载后没有任何用户交互显示,但我一直无法弄清楚如何触发它。有什么想法吗?

从我的MapActivity继承类:

private MapView mapView;

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.map);
 mapView = (MapView) findViewById(R.id.mapview);
 mapView.setBuiltInZoomControls(true);
 mapView.setTraffic(true);
}

这里有R.layout.map

的内容
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainlayout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <com.google.android.maps.MapView
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:apiKey="...MY API KEY HERE..."
    />
</RelativeLayout>

3 个答案:

答案 0 :(得分:3)

在适当的延迟之后

postInvalidate()应该作为一种解决方法,你尝试过什么样的延迟时间?

答案 1 :(得分:0)

我试图找到XML attrs的{​​{1}},但我找不到它们。

我的猜测是使用MapView

后不会重绘地图

尝试拨打setTraffic(true);

答案 2 :(得分:0)

我提交了一份关于此问题的错误报告,编号10317。根据我的研究,当您在MapView上打开流量或街景模式时,线程会启动以从Google服务器检索数据。如果在MapView绘制自己时没有返回数据,则不会显示相应的行。用户交互会导致重绘,到那时数据通常会出现。调用invalidate不起作用,因为线程在代码完成执行之前不会启动(即,启用模式的代码)。解决方法是发布未来消息以使MapView无效,从而导致重绘,然后(希望)存在数据。修复将用于执行数据提取的线程,以便在检索数据时重绘。