@Override\npublic void draw(Canvas canvas , MapView mapView , boolean shadow) {\n super.draw(canvas, mapView, shadow);\n\n // 绘制每个标记的旋转角度\n for (CustomOverlayItem item : mItemList) {\n Drawable marker = item.getMarker(0); // 获取标记的图标\n float rotation = item.getRotation(); // 获取标记的旋转角度\n\n if (marker instanceof BitmapDrawable && rotation != 0) {\n BitmapDrawable bitmapDrawable = (BitmapDrawable) marker;\n Bitmap bitmap = bitmapDrawable.getBitmap();\n\n // 创建一个旋转后的图标\n Matrix matrix = new Matrix();\n matrix.postRotate(rotation);\n Bitmap rotatedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);\n\n // 清除画布上的内容\n canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);\n\n // 绘制旋转后的图标\n canvas.save();\n IGeoPoint iGeoPoint = item.getPoint();\n Point screenPts = mapView.getProjection().toPixels(iGeoPoint, null);\n canvas.translate(screenPts.x- (rotatedBitmap.getWidth() / 2), screenPts.y- (rotatedBitmap.getHeight() / 2));\n canvas.drawBitmap(rotatedBitmap, 0, -40, null);\n canvas.restore();\n }\n }\n}

Android 地图覆盖物旋转图标优化:清除画布内容解决重复显示问题

原文地址: https://www.cveoy.top/t/topic/psXP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录