使用可绘制XML进行地图标记的地图v2

时间:2014-04-25 18:40:30

标签: android google-maps

遇到一个让我循环的错误。

背景 - 现在使用Android Google Maps v2,我正在尝试向地图添加自定义标记。我正在使用的drawable是一个XML文件,它引用了另外两个drawable(一个用于背景标记,然后是一个位于标记顶部的'符号'。)

我还没有进入图层列表,例如drawables,所以我的问题可能与此有关,或者我是如何在地图中实现的。

我的绘画:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:bottom="34dp"
        android:drawable="@drawable/marker_green_blank"
        android:left="0dp"
        android:right="20dp"
        android:top="0dp"/>
    <item
        android:bottom="20dp"
        android:drawable="@drawable/marker_symbol_int"
        android:left="3dp"
        android:right="19dp"
        android:top="4dp"/>
</layer-list>

'marker_green_blank'是标准地图标记。 'marker_synbol_int'是一个自定义图标,用于表示标记标识的项目。

一切都很好,花花公子。我用来将其设置为地图标记的代码是:

MarkerOptions opt = new MarkerOptions();
opt.position(mark.location);
opt.title(mark.pid);
opt.snippet(summary);

BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPreferQualityOverSpeed = true;
opts.outHeight = 34;
opts.outWidth = 20;
Bitmap icon = BitmapFactory.decodeResource(getResources(),
    R.drawable.marker, opts);
BitmapDescriptor marker_green_blank = BitmapDescriptorFactory.fromBitmap(icon);

opt.anchor((float)0.5, 1);
mark.associatedMapMarker = mMap.addMarker(opt);

mark对象只是一个自定义持有者类,其中包含有关该位置的信息。

当我在地图上投掷标记时,我在addMarker()电话上收到以下错误 -

04-25 14:34:29.709: E/AndroidRuntime(3792): java.lang.NullPointerException:
    Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()'
    on a null object reference

这很明显,因为我的.decodeResource返回了一个空位图。 Sp,这意味着我的XML是错误的,或者我正在弄乱别的东西。

指示从哪里开始寻找?我想利用这些层等,因为总共有45种不同的标记,而不是创建45位图,有一个子集,然后使用XML覆盖它们将是最好的。

谢谢!

0 个答案:

没有答案