2010-02-16 34 views
0

当我要集成叠加层时,在MapView教程之后出现了一些错误。叠加层无法在Google MapView教程中使用Android

TravelBuddy.java

package com.jappapps.android.travelbuddy; 
import java.util.List; 

import android.graphics.drawable.Drawable; 
import android.os.Bundle; 

import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 
import com.google.android.maps.Overlay; 

public class TravelBuddy extends MapActivity { 
List<Overlay> mapOverlays; 
Drawable drawable; 
Overlays itemizedOverlay; 
/** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); // changed to lowercase 
     MapView mapView = (MapView) findViewById(R.id.mapview); // match id in main.xml 
     mapView.setBuiltInZoomControls(true); 
     mapOverlays = mapView.getOverlays(); 
     drawable = this.getResources().getDrawable(R.drawable.androidmarker); 
     itemizedOverlay = new Overlays(drawable); 
    } 

    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 
    } 

Overlays.java

package com.jappapps.android.travelbuddy; 

import java.util.ArrayList; 

import android.graphics.drawable.Drawable; 

import com.google.android.maps.ItemizedOverlay; 
import com.google.android.maps.OverlayItem; 

public class Overlays extends ItemizedOverlay { 
public Overlays(Drawable arg0) { 
    super(arg0); 
    Object overlayitem; 
    ItemizedOverlay.addOverlay(overlayitem); 
    Object itemizedoverlay; 
    ArrayList<OverlayItem> mapOverlays; 
    mapoverlays.add(itemizedOverlay); 
} 
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 
super(boundCenterBottom(defaultMarker)); 
public void addOverlay(OverlayItem overlay) { 
    mOverlays.add(overlay); 
    populate();} 
    @Override 
    protected OverlayItem createItem(int i) { 
     return mOverlays.get(i); 

    } 
    @Override 
    public int size() { 
     return 0; 
    } 
    } 

很抱歉,如果我看起来像一个完整的新手,但我想学习,我得到了它需要的MapView一个真棒应用程序的想法, webview,叠加和标签。

+0

你的问题是什么? – Janusz

+0

也许这只是一个复制错误,但超级(boundCenterBottom(defaultMarker));超出了任何功能的范围。它显然应该在构造函数中。 –

回答

1

@Override public int size(){ return mOverlays.size(); }

1

我从“官方”google mapview教程中使用androidmarker.png,并被叠加显示出来。我尝试了其他几个人的工作示例,但仍然是同样的问题。我换了一个更小的PNG androidmarker.png,它的工作。所以代码很好,但与标记资产有关。

相关问题