我想旋轉一個帶有的drawable一個xml文件,然後在地圖上顯示它。通過XML旋轉drawable不能在GoogleMap V2上使用標記
我喜歡。
//...//
mo1.position(myLatLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.myxmldrawable));
map.addMarker(mo1);
//...//
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="180"
android:toDegrees="180"
android:pivotX="50%"
android:pivotY="50%"
android:drawable="@drawable/pin"/>
如果我跑的代碼以下異常捕獲:
07-16 13:10:18.347: W/System.err(26084): java.lang.NullPointerException
07-16 13:10:18.347: W/System.err(26084): at maps.ah.bm.a(Unknown Source)
07-16 13:10:18.347: W/System.err(26084): at maps.ah.bm.a(Unknown Source)
07-16 13:10:18.347: W/System.err(26084): at maps.ah.an.a(Unknown Source)
07-16 13:10:18.347: W/System.err(26084): at bgc.onTransact(SourceFile:167)
07-16 13:10:18.347: W/System.err(26084): at android.os.Binder.transact(Binder.java:326)
07-16 13:10:18.347: W/System.err(26084): at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a.addMarker(Unknown Source)
07-16 13:10:18.347: W/System.err(26084): at com.google.android.gms.maps.GoogleMap.addMarker(Unknown Source)
07-16 13:10:18.347: W/System.err(26084): at hu.illion.ayt.activities.MapAct$GetBolyakAsync.onPostExecute(MapAct.java:1177)
07-16 13:10:18.347: W/System.err(26084): at hu.illion.ayt.activities.MapAct$GetBolyakAsync.onPostExecute(MapAct.java:1)
07-16 13:10:18.347: W/System.err(26084): at android.os.AsyncTask.finish(AsyncTask.java:631)
07-16 13:10:18.347: W/System.err(26084): at android.os.AsyncTask.access$600(AsyncTask.java:177)
07-16 13:10:18.347: W/System.err(26084): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
07-16 13:10:18.357: W/System.err(26084): at android.os.Handler.dispatchMessage(Handler.java:99)
07-16 13:10:18.357: W/System.err(26084): at android.os.Looper.loop(Looper.java:137)
07-16 13:10:18.357: W/System.err(26084): at android.app.ActivityThread.main(ActivityThread.java:4867)
07-16 13:10:18.357: W/System.err(26084): at java.lang.reflect.Method.invokeNative(Native Method)
07-16 13:10:18.357: W/System.err(26084): at java.lang.reflect.Method.invoke(Method.java:511)
07-16 13:10:18.357: W/System.err(26084): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
07-16 13:10:18.357: W/System.err(26084): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
07-16 13:10:18.357: W/System.err(26084): at dalvik.system.NativeStart.main(Native Method)
的錯誤時拋出點的地方,我想補充線標記到地圖。
重要:我已成功與.png drawables。我有xml定義的繪圖只有問題(旋轉...)
那麼這是什麼? GoogleMap無法處理XML可繪製或什麼?
Ëd I T:
好了,所以之後我嘗試了建議,並認爲這是不工作,(仍然有nullptr除外),我只是說我到底要記錄哪些出來的一切。
結果對我來說很奇怪。
logcat的結果:
07-17 22:11:11.410: I/myResource(22971): myResource is: 2130837627
07-17 22:11:11.410: I/myBitmapDescriptor(22971): myBitmapDescriptor is: [email protected]
07-17 22:11:11.410: I/myLatLng(22971): myLatLng is OK
07-17 22:11:11.410: I/myMarker(22971): myMarker is OK
07-17 22:11:11.410: I/myMarker(22971): myMarker is still OK
07-17 22:11:11.410: I/map(22971): map is OK
看到了嗎?一切都有參考。無爲NULL,但NullPointerException仍然存在。 和代碼是:
MarkerOptions myMarker = new MarkerOptions();
LatLng myLatLng = new LatLng(Double.valueOf(myHashMap.get("lat2")), Double.valueOf(myHashMap.get("lng2")));
if (myHashMap.get("point_type").equals("1")) {
Bitmap icon = BitmapFactory.decodeResource(MapAct.this.getResources(), R.drawable.ellenfel);
mo1.position(kezdoLatLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.startbolya));
myMarker.position(myLatLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.zsuri0));
} else {
mo1.position(kezdoLatLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.endbolya));
int myResource = getResources().getIdentifier("zsuri180","drawable", getPackageName());
if(myResource==0)
{
Log.i("myResource", "myResource is null");
}
else
{
Log.i("myResource", "myResource is: "+myResource+"");
}
BitmapDescriptor myBitmapDescriptor = BitmapDescriptorFactory.fromResource(myResource);
if(myBitmapDescriptor==null)
{
Log.i("myBitmapDescriptor", "myBitmapDescriptor is null");
}
else
{
Log.i("myBitmapDescriptor", "myBitmapDescriptor is: "+myBitmapDescriptor);
}
if(myLatLng==null)
{
Log.i("myLatLng", "myLatLng is NULL");
}
else
{
Log.i("myLatLng", "myLatLng is OK");
}
myMarker.position(myLatLng);
if(myMarker==null)
{
Log.i("myMarker", "myMarker is NULL");
}
else
{
Log.i("myMarker", "myMarker is OK");
}
myMarker.icon(myBitmapDescriptor);
if(myMarker==null)
{
Log.i("myMarker", "myMarker is NULL");
}
else
{
Log.i("myMarker", "myMarker is still OK");
}
if(map==null)
{
Log.i("map", "map is NULL");
}
else
{
Log.i("map", "map is OK");
}
}
map.addMarker(myMarker);
那麼,它在其他地方工作,但不是在地圖上:( –
至少你不應該收到'NullPointerException' - 對嗎?如果是這樣,那麼請粘貼從現在開始的錯誤謝謝 – g00dy
我得到了同樣的錯誤。NullPointerEx。 –