android – 将OSMDroid与Fragments集成

所以我设法通过扩展Activity来更好地理解OSMDRoid的工作原理.

public class POfflineMapView extends Activity implements LocationListener, MapViewConstants{

    private MapView myOpenMapView;
    private OsmMapsitemizedoverlay mitemizedoverlay;
    private ResourceProxy mResourceProxy;
    private OverlayItem overlayItem;
    private ArrayList<OverlayItem> mItems = new ArrayList<OverlayItem>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext());
        setContentView(R.layout.offline_map_activity);
        myOpenMapView = (MapView) findViewById(R.id.openmapview);
        myOpenMapView.getTileProvider().clearTileCache();

        //.... code continues
    }
}

但是,我很难找到使用Fragments实现使用OSMDRoid Maptiles显示的示例(例如,SherlockMapFragment).有谁知道如何实现这一点,或者是否能够为我提供示例实施指南?

我需要这样做,因为我有一个Activity容器,当我点击某个按钮时,我想做一个片段.replace()来代替用OSMDRoid地图片段代替容器.

谢谢!

解决方法:

无论您是在Activity还是Fragment中使用它,osmdroid地图视图的工作方式都是相同的.只需将它放在您的布局文件中并在Fragment中膨胀它,或者直接在Fragment的onCreateView方法中创建MapView.

要创建包含认地图的片段,您可以执行以下操作:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
  return new MapView(getActivity(), 256);
}

在你的片段类中.

如果您想使用包含MapView的布局,您可以在片段中执行以下操作:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
  View v = inflater.inflate(R.layout.offline_map_activity, null);
  myOpenMapView = v.findViewById(R.id.openmapview);
  return v;
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...