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;
}
}
请帮帮我