我的工程在Android Google Map上需要划折线,发现API中竟然没有Polyline,分析Overlay类之后,自己做了一个折线类,使用起来跟Flex中的Polyline差 不多,其余不多说,直接贴上代码。

package westyi.map.overlay;import java.util.List;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Point;import com.google.android.maps.GeoPoint;import com.google.android.maps.MapView;import com.google.android.maps.Overlay;import com.google.android.maps.Projection;/** * Goolge地图之Polyline实现 *  * @author westyi */public class Polyline extends Overlay {List<GeoPoint> points;Paint paint;/** * 构造函数,使用GeoPoint List构造Polyline *  * @param points *            GeoPoint点List */public Polyline(List<GeoPoint> points) {this.points = points;paint = new Paint();paint.setColor(Color.BLUE);paint.setAlpha(150);paint.setAntiAlias(true);paint.setStyle(Paint.Style.FILL_AND_STROKE);paint.setStrokeWidth(4);}/** * 使用GeoPoint点List和Paint对象来构造Polyline *  * @param points *            GeoPoint点List,所有的拐点 * @param paint *            Paint对象,用来控制划线样式 */public Polyline(List<GeoPoint> points, Paint paint) {this.points = points;this.paint = paint;}/** * 真正将线绘制出来 只需将线绘制到canvas上即可,主要是要转换经纬度到屏幕坐标 */@Overridepublic void draw(Canvas canvas, MapView mapView, boolean shadow) {if (!shadow) {// 不是绘制shadow层Projection projection = mapView.getProjection();if (points != null) {if (points.size() >= 2) {Point start = projection.toPixels(points.get(0), null);// 需要转换坐标for (int i = 1; i < points.size(); i++) {Point end = projection.toPixels(points.get(i), null);canvas.drawLine(start.x, start.y, end.x, end.y, paint);// 绘制到canvas上即可start = end;}}}}}}

简单的用例如下:

List<GeoPoint> points = new ArrayList<GeoPoint>();points.add(new GeoPoint(39907794,116356694));points.add(new GeoPoint(39950181,116415059));points.add(new GeoPoint(39909637,116435315));points.add(new GeoPoint(39902526,116398236));Polyline polyline = new Polyline(points);map.getOverlays().add(polyline); //map是MapView类型map.invalidate();

OK, 大功告成!看看效果如下:

更多相关文章

  1. Android(安卓)Paint类方法说明
  2. Android(安卓)OpenGL ES学习笔记之绘制点
  3. android 绘制虚线效果
  4. 一个有趣的android加载动画
  5. Android中TextView文字镂空效果的实现
  6. Effective Java读书笔记、感悟——1.创建和销毁对象
  7. 转载:谁说程序员不浪漫---Android爱心表白
  8. Android之GPU过度绘制与图形渲染优化——Hierarchyviewer时间不
  9. android图文弹幕

随机推荐

  1. android 安全机制
  2. Android获取屏幕分辨率及DisplayMetrics
  3. Android消息机制
  4. android在EditText中插入表情图片
  5. android 自定义控件学习之三 控件布局常
  6. Android中LocationManager的简单使用,获
  7. Android(安卓)Zip文件解压缩代码
  8. Android中Uri的使用
  9. ANDROID 应用退出
  10. Android利用Fiddler进行网络数据抓包