Android 地图缩放滞后

Android 地图缩放滞后,android,canvas,android-mapview,Android,Canvas,Android Mapview,当我有大变焦时,我有应用滞后的问题。 我有带标记和区域的地图,当我使缩放更大时,地图会滞后。 我一直在寻找解决方案,但没有找到 请帮我输入这个代码 我不知道怎样才能修好它 这是我的代码: public class LiniaOverlay extends Overlay { private List<GeoPoint> m_areas; private Paint m_paintFill; private Paint m_paintStroke; p

当我有大变焦时,我有应用滞后的问题。 我有带标记和区域的地图,当我使缩放更大时,地图会滞后。 我一直在寻找解决方案,但没有找到

请帮我输入这个代码

我不知道怎样才能修好它

这是我的代码:

public class LiniaOverlay extends Overlay {

    private List<GeoPoint> m_areas;
    private Paint m_paintFill;
    private Paint m_paintStroke;
    private static final int ALPHA = 0x30ffffff;
    private static int COLORS = Color.YELLOW;
    Path areaPaths;
    static {LiniaOverlay.COLORS &= LiniaOverlay.ALPHA;}

    public LiniaOverlay(final List<GeoPoint> points) {
        m_areas = points;
        m_paintFill = new Paint();
        m_paintFill.setStyle(Paint.Style.FILL);
        m_paintStroke = new Paint(Paint.ANTI_ALIAS_FLAG);
        m_paintStroke.setStyle(Style.STROKE);
        m_paintStroke.setAntiAlias(true);
        m_paintStroke.setStrokeWidth(3);
    }

    @Override
    public void draw(final Canvas canvas, final MapView mapView, final boolean shadow) {
        super.draw(canvas, mapView, shadow);
        if (shadow) {
            return;
        }
        Projection projection = mapView.getProjection();
        areaPaths = getPath(projection, m_areas);
        drawPaths(canvas, areaPaths);
    }

    private Path getPath(final Projection projection, final List<GeoPoint> areas) {     
        Path path = new Path();
        path.setFillType(Path.FillType.EVEN_ODD);
        Iterator<GeoPoint> it = areas.iterator();
        Point point = nextDrawPoint(projection, it);
        path.moveTo(point.x, point.y);
        while (it.hasNext()) 
        {
                point = nextDrawPoint(projection, it);
                path.lineTo(point.x, point.y);
        }
        path.close();
        return path;
    }
    private void drawPaths(final Canvas canvas, final Path path) {
       int currentColor = LiniaOverlay.COLORS;
       m_paintStroke.setColor(currentColor & 0xff7f7f7f);
       canvas.drawPath(path, m_paintStroke);
       int currentColor2 = LiniaOverlay.COLORS;
       m_paintFill.setColor(currentColor2);
       canvas.drawPath(path, m_paintFill);    
    }

    private Point nextDrawPoint(final Projection projection, final Iterator<GeoPoint> it) {
        GeoPoint geo = it.next();
        Point p = new Point();
        projection.toPixels(geo, p);
        return p;
    }
}
公共类LiniaOverlay扩展覆盖{
私人清单m_区域;
私人油漆m_paintFill;
私人油漆m_paintStroke;
专用静态最终int ALPHA=0x30ffffff;
私有静态int COLORS=Color.YELLOW;
路径区域路径;
静态{LiniaOverlay.COLORS&=LiniaOverlay.ALPHA;}
公共车道(最终列表点){
m_面积=点;
m_paintFill=新油漆();
m_paintFill.setStyle(Paint.Style.FILL);
m_paintStroke=新油漆(油漆.防油漆别名\u标志);
m_paintStroke.setStyle(Style.STROKE);
m_paintStroke.setantialas(真);
m_油漆冲程设置冲程宽度(3);
}
@凌驾
公共空白绘制(最终画布、最终贴图视图、最终布尔阴影){
super.draw(画布、地图视图、阴影);
如果(阴影){
回来
}
Projection=mapView.getProjection();
区域路径=获取路径(投影,m_区域);
绘图路径(画布、区域路径);
}
私有路径getPath(最终投影,最终列表区域){
路径路径=新路径();
path.setFillType(path.FillType.偶数/奇数);
Iterator it=areas.Iterator();
点=下一个绘制点(投影,it);
路径移动到(点x,点y);
while(it.hasNext())
{
点=下一个绘制点(投影,it);
lineTo路径(点x、点y);
}
path.close();
返回路径;
}
专用void绘制路径(最终画布、最终路径){
int currentColor=LiniaOverlay.COLORS;
m_paintStroke.setColor(currentColor&0xFF7F7F);
canvas.drawPath(路径,m_paintStroke);
int currentColor2=LiniaOverlay.COLORS;
m_paintFill.setColor(currentColor2);
画布.绘图路径(路径,m_paintFill);
}
私有点nextDrawPoint(最终投影,最终迭代器it){
GeoPoint geo=it.next();
点p=新点();
投影。toPixels(geo,p);
返回p;
}
}
请帮帮我