Java 覆盖在Google MapView教程Android中不起作用
在我准备集成覆盖图时,在MapView教程之后出现了一些错误 TravelBuddy.javaJava 覆盖在Google MapView教程Android中不起作用,java,android,google-maps,overlays,Java,Android,Google Maps,Overlays,在我准备集成覆盖图时,在MapView教程之后出现了一些错误 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.andr
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;
}
}
package com.jappapps.android.travelbuddy;
导入java.util.List;
导入android.graphics.drawable.drawable;
导入android.os.Bundle;
导入com.google.android.maps.MapActivity;
导入com.google.android.maps.MapView;
导入com.google.android.maps.Overlay;
公共类TravelBuddy扩展MapActivity{
列出地图覆盖图;
可拉伸;
覆盖层项目化覆盖;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//更改为小写
MapView MapView=(MapView)findViewById(R.id.MapView);//匹配main.xml中的id
mapView.SetBuilTinZoomControl(真);
mapOverlays=mapView.getOverlays();
drawable=this.getResources().getDrawable(R.drawable.androidmarker);
itemizedOverlay=新覆盖层(可拉伸);
}
@凌驾
受保护的布尔值isRouteDisplayed(){
返回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;
}
}
package com.jappapps.android.travelbuddy;
导入java.util.ArrayList;
导入android.graphics.drawable.drawable;
导入com.google.android.maps.ItemizedOverlay;
导入com.google.android.maps.OverlayItem;
公共类覆盖扩展了ItemizedOverlay{
公共覆盖层(可绘制arg0){
超级(arg0);
对象覆盖项;
ItemizedOverlay.addOverlay(overlayitem);
对象项化覆盖;
ArrayList地图覆盖;
添加(itemizedOverlay);
}
private ArrayList mOverlays=new ArrayList();
super(boundCenterBottom(defaultMarker));
公共void addOverlay(OverlayItem overlay){
添加(覆盖);
填充();}
@凌驾
受保护的OverlayItem createItem(int i){
返回mOverlays.get(i);
}
@凌驾
公共整数大小(){
返回0;
}
}
抱歉,如果我看起来像一个完全的新手,但我正在努力学习,我得到了一个很棒的应用程序想法,它需要mapview、webview、覆盖图和选项卡。@Override
公共整数大小(){
返回mOverlays.size();
}我使用的是“官方”谷歌地图视图教程中的androidmarker.png,但覆盖图没有显示。我尝试了几个其他人的工作示例,但仍然遇到了相同的问题。我把androidmarker.png换成了一个更小的png,它成功了。所以代码很好,但与标记资产有关 也许这只是一个复制错误,但是super(boundCenterBottom(defaultMarker));在任何功能范围之外。它显然应该在构造函数中。