2

所以我有一个 customoverlay 扩展 itemizedoverlay 以便在地图上放置一个标记。我的问题是我想调整标记,以便可绘制的边界与 boundCenterBottm 和 boundCenter 值不同(在我的情况下,如果存在,我希望有类似 boundLeftBottom 的东西)。我如何实现这一目标?我想实现这一点的原因是因为我有一个指向左下角的drawable。

我已经在网上搜索过,非常感谢任何帮助。

建议在左侧制作均匀透明的空间将不被接受。我认为这是一个不恰当的解决方法

编辑;

我最终得到了这个:

public class CustomOverlay extends ItemizedOverlay<CustomOverlayItem> {
    private ArrayList<CustomOverlayItem> mOverlays = new ArrayList<CustomOverlayItem>();
    private Context mContext;

    public CustomOverlay(Drawable defaultMarker, Context context) {
//      super(boundCenterBottom(defaultMarker));
        super(defaultMarker);
        defaultMarker.setBounds(0, -defaultMarker.getIntrinsicHeight(), defaultMarker.getIntrinsicWidth(), 0);  //TODO experiment
        mContext = context;
    }

这是正确的,尽管它没有解决我的问题,因为角落里的图形并不完美,并且有 3 个不同的可绘制对象很难修复(所以最终的解决方案是我要修复可绘制对象)。

4

1 回答 1

3

boundCenterBottom 和 boundCenter 是在可绘制对象上调用 setBounds 的辅助函数...您可以自己调用它。

对于左下角,我认为它看起来像这样:

drawable.setBounds(0, -drawable.getIntrinsicHeight(), drawable.getIntrinsicWidth(), 0);

但这只是我的想法。

于 2011-12-13T10:55:02.870 回答