我正在尝试在安卓地图itemizedOverlay中缩放图片,我让它工作到可以看到10张图片的程度,我得到了zoomControle,但实际上没有其他的东西。
这是扩展ItemizedOverlay的MapItems类,欢迎优化
import java.util.ArrayList;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.Log;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;
public class MapItems extends ItemizedOverlay
{
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
Context mContext;
public MapItems(Drawable defaultMarker)
{
super(boundCenterBottom(defaultMarker));
}
@Override
public void draw(android.graphics.Canvas canvas,MapView mapView,boolean shadow)
{
/*
Log.d("MapAc", String.valueOf(mapView.getZoomLevel()));
if(mapView.getZoomLevel() > 20)
{
Log.d("MapAc", "scaling up");
canvas.scale(1.2f, 1.2f);
}
*/
super.draw(canvas,mapView,false);
}
public MapItems(Context context)
{
super(boundCenterBottom(context.getResources().getDrawable(R.drawable.app_icon_clean)));
mContext = context;
}
public void addOverlay(OverlayItem overlay)
{
mOverlays.add(overlay);
populate();
}
public void clearOverlay()
{
mOverlays.clear();
}
@Override
protected OverlayItem createItem(int i)
{
return mOverlays.get(i);
}
@Override
public int size()
{
return mOverlays.size();
}
@Override
protected boolean onTap(int index)
{
/* ToDo
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
*/
return true;
}
}我一直在尝试缩放绘制方法,使用canvas.Scale,但是这似乎是在另一个位置重新绘制画布,以及旧画布“原始大小”,我不确定我是否从正确的角度来处理这个问题,或者如果这只是一个清除屏幕的问题,我已经用了几天来弄清楚这个问题,所以当缩放时正确缩放我的图片的方法是非常感谢的。
发布于 2012-12-29 03:08:36
使用新的地图应用编程接口V2
Blog article
Video
https://stackoverflow.com/questions/14074258
复制相似问题