我正在尝试创建自定义标记,如下图所示,如果可能,可以使用轮廓或投影。里面的矩形表示动态图像。
无论如何,我已经掌握了基础知识,但是我无法弄清楚如何更改图像的大小,因为我只能定义左上角偏移点,然后画布的其余部分会填充图像直到右下角边缘,覆盖背景。我也不知道如何创建指向下方的三角形,我尝试旋转画布,绘制一个矩形并将其旋转回来(请参见第二个代码片段),但这不起作用,因为它不围绕其中心旋转。有什么想法吗?我这样做“正确”吗?构建自定义标记的方法是否正确或过慢/不优化?
无论如何,我已经掌握了基础知识,但是我无法弄清楚如何更改图像的大小,因为我只能定义左上角偏移点,然后画布的其余部分会填充图像直到右下角边缘,覆盖背景。我也不知道如何创建指向下方的三角形,我尝试旋转画布,绘制一个矩形并将其旋转回来(请参见第二个代码片段),但这不起作用,因为它不围绕其中心旋转。有什么想法吗?我这样做“正确”吗?构建自定义标记的方法是否正确或过慢/不优化?
//IMAGE MARKER - red background with image on top
LatLng vogel3 = new LatLng(myLat+0.0005,myLong+0.0005);
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
Bitmap bmp = Bitmap.createBitmap(40, 40, conf);
Canvas canvas = new Canvas(bmp);
Paint color = new Paint();
color.setColor(Color.RED);
canvas.drawRect(0, 0, 40, 40, color);
canvas.drawBitmap(BitmapFactory.decodeResource(getResources(),
R.drawable.spatz_adult), 3, 5, color);
//canvas1.drawText("bird", 30, 40, color);
//add marker to Map
map.addMarker(new MarkerOptions().position(vogel3)
.icon(BitmapDescriptorFactory.fromBitmap(bmp))
.title("custom marker")
.snippet("eeeeeeeeeep")
//.anchor(0.5f, 1)
);
~
//trying to draw triangle
canvas.save();
canvas.rotate(45);
canvas.drawRect(0, 0, 40, 40, color);
canvas.restore();