android - 自定义 OverlayItem 不绘制

标签 android google-maps overlay drawable

我创建了一个自定义的 OverlayItem 类,这样我基本上可以拥有一种 OverlayItem,其 Drawable 标记会根据我传递给它的某些数据的状态自行设置。

我试图通过在我的第一次尝试中使用 OverlayItem 类中的 setMarker 方法来完成此操作。一旦这不起作用,我尝试覆盖 getMarker 方法并让它返回适当的标记来表示数据。

这两种尝试都没有在 map 上绘制任何内容...但是,如果将它们注释掉,则标记绘制得很好(除了它们当然使用默认标记,这不是我想要的)。

这是我的自定义 OverlayItem 类的代码(我尝试过但没有奏效的注释掉的方法):

private class MyOverlayItem extends OverlayItem {
    private Context mContext;
    private MyData mData;

    public MyOverlayItem(GeoPoint point, MyData data, Context context) {
        super(point, data.getWhat(), data.getWhere());
        this.mContext = context;
        this.mData = data;

        /*if(data.getTemp() > 200)
            this.setMarker(res.getDrawable(R.drawable.icon_data_hot_l));
        else if(data.getTemp() > 100)
            this.setMarker(res.getDrawable(R.drawable.icon_data_neutral_l));
        else
            this.setMarker(res.getDrawable(R.drawable.icon_data_frozen_l));*/
    }

    /*@Override
    public Drawable getMarker(int stateBitset) {
        Resources res = this.mContext.getResources();
        if(this.mData.getTemp() > 200)
            return res.getDrawable(R.drawable.icon_data_hot_l);
        else if(this.mData.getTemp() > 100)
            return res.getDrawable(R.drawable.icon_data_neutral_l);
        return res.getDrawable(R.drawable.icon_data_frozen_l);
    }*/
}

有没有办法做我想做的事...或者我是否需要制作一个与我的数据的每个状态相对应的唯一 OverlayItem 类? (嗯。)

最佳答案

我已经能够使标记出现,但是它们是倒置的(至少,我认为它们是倒置的,可能只是它们的影子在左上而不是右下)。

我需要做的就是添加这一行:

this.mMarker.setBounds(0, 0, this.mMarker.getIntrinsicWidth(), this.mMarker.getIntrinsicHeight());

...以及此行以正确定位标记(我在 ItemizedOverlay 添加棕褐色覆盖项时添加了此行:

overlay.setMarker(boundCenterBottom(overlay.getMarker(0)));

关于android - 自定义 OverlayItem 不绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452972/

相关文章:

android - 中心景观线性布局android

javascript - 对于谷歌地图标记,是否可以在 svg 中包含多种颜色

javascript - Google map v3 在 WordPress 中加载后发生变化

safari - 涂黑内容,使一页 div 可见

overlay - directshow mpeg2 文本叠加而不解码

css - IE7 CSS z-index 覆盖

android - 如何使用自定义 Makefile 为 Android 编译 STL C++?

java - 2 个按钮 2 个 EditTexts 字符串输入 1 个 TextVew 输出

java - 无法在 Android Studio 中构建项目

ios - 如何打开 native GoogleMaps App 和 Waze App