遇到一个让我循环的错误。
背景 - 现在使用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覆盖它们将是最好的。
谢谢!