2010-08-19 64 views

回答

5

取决于您如何绘制标记。如果您的标记是只是一个位图/绘制时,只需使用matrix.postScale()

Matrix matrix = new Matrix(); 
matrix.postScale(2f, 2f); // douple the size 
canvas.drawBitmap(mBitmap, matrix, mPaint); 
+0

你能提供一个更详细的方法怎么做到这一点? – ferguior 2011-09-13 20:10:21

+0

@ferguior:你到底需要什么?绘制缩放的图像现在在我编辑的帖子中回答... – WarrenFaith 2011-09-13 20:43:57

+1

我的疑问更多的是关于如何处理缩放,何时做以及如何测量,以便我可以应用正确的缩放比例。此外,你发布的这个代码,它会在哪个类中去?在地图视图中,或在OverlayItem中,或在ItemizedItem中? – ferguior 2011-09-13 20:51:21

2

标记不改变基于缩放大小。如果您想要这种效果,请使用GroundOverlays。 src

GoogleMap map = ...; // get a map. 
BitmapDescriptor image = ...; // get an image. 
LatLngBounds bounds = ...; // get a bounds 
// Adds a ground overlay with 50% transparency. 
GroundOverlay groundOverlay = map.addGroundOverlay(new GroundOverlayOptions() 
    .image(image) 
    .positionFromBounds(bounds) 
    .transparency(0.5)); 

地面叠加层是固定到地图和与地图变焦缩放的图像。请参阅API了解更多信息

+0

但是你必须计算地面覆盖的界限,而不是提供一个位置。这使得它不是理想的解决方案。 – 2014-06-18 20:06:27

0

一个简单的形式是。

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.raw.ic_car_1); 
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap); 
     googleMap.addGroundOverlay(new GroundOverlayOptions() 
      .image(bitmapDescriptor) 
      .position(latLng,100));