加载多边形时,包含googlemap v2的活动屏幕为黑色

时间:2013-11-21 22:49:04

标签: android google-maps-android-api-2

我正在使用谷歌地图v2的代码在加载地图v2上绘制多边形。它在5秒内加载300多个多边形,但它显示黑屏直到5秒,并且在屏幕上不显示任何内容。如何显示地图或者我应该显示loading .. msg直到它显示地图??我真的很感激任何帮助。我尝试了很多方法,但仍然在主线程上看到黑屏作为其加载多边形。谢谢提前。

  LatLng allLatLng= new LatLng((lat1),(long1));
   all.add(allLatLng);

polygon = googleMap.addPolygon(new PolygonOptions()
                           .addAll(all)
                           .fillColor(Color.Yellow)
                           .strokeColor(Color.blue)
                       );

2 个答案:

答案 0 :(得分:0)

附带评论的示例

//in onCreate
String json_string = getJsonStringStuff();
new AsyncTask<String, Void, List<List<LatLng>>>() {

    @Override protected List<List<LatLng>> doInBackground(String... params) {
            String json = params[0];
            List<List<LatLng>> mLatLngList = new ArrayList<ArrayList<LatLng>>();
            // Parse the json into the list
            return mLatLngList;
    }

    @Override protected void onPostExecute(List<List<LatLng>> result) {
        drawPolygonsToMap(result);
    }

}.execute(json_string);

答案 1 :(得分:0)

使用此选项可防止黑色背景

<fragment
                    android:id="@+id/location_map_fragment"
                    android:name="com.app.appname.TransparentSupportMapFragment"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/white" />

/**
 * 
 * To prevent black background of map in ScrollView
 *
 */
public class TransparentSupportMapFragment extends SupportMapFragment {

    public TransparentSupportMapFragment() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup view, Bundle savedInstance) {
        View layout = super.onCreateView(inflater, view, savedInstance);

        FrameLayout frameLayout = new FrameLayout(getActivity());
        frameLayout.setBackgroundColor(getResources().getColor(android.R.color.transparent));
        ((ViewGroup) layout).addView(frameLayout,
            new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        return layout;
    }


    public static TransparentSupportMapFragment newInstance(String abc) {
        TransparentSupportMapFragment tsf = new TransparentSupportMapFragment();

        return tsf;
    }
}