【问题标题】:How to scale markers on Android, and set shadow and onTap correctly如何在 Android 上缩放标记,并正确设置阴影和 onTap
【发布时间】:2010-12-17 14:48:48
【问题描述】:

我正在使用以下代码在 MapView 上缩放标记

OverlayItem oi = new OverlayItem(point,"Title", "Desc");
oi.setMarker(getCustomMarker(0.5f, 0.5f));
itemizedOverlay.addOverlay(oi);

和:

private BitmapDrawable getCustomMarker(float scaleWidth, float scaleHeight){
    int width = originalMarker.getWidth();
    int height = originalMarker.getHeight();

    Matrix matrix = new Matrix();
    matrix.postScale(scaleWidth, scaleHeight);
    Bitmap bitmap = Bitmap.createBitmap(originalMarker, 0, 0, width, height, matrix, true);

    BitmapDrawable bm = new BitmapDrawable(bitmap);
    bm.setBounds(0,0,bitmap.getWidth(),bitmap.getHeight());

    return bm;
}

这可行,但标记下方的阴影在缩放时偏移错误。还;我覆盖了 ItemizedOverlay 中的public boolean onTap(int index) 以检测标记上的点击,但这似乎不准确。我可以点击标记外的某个范围,仍然触发 onTap...

【问题讨论】:

    标签: java android google-maps


    【解决方案1】:

    我用这个来设置阴影

    int w = drawable.getIntrinsicWidth();
    int h = drawable.getIntrinsicHeight();
    drawable.setBounds(-w / 2, -h, w / 2, 0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      相关资源
      最近更新 更多