我正在根据它的方向旋转自定义GoogleMap
标记。
我的标记是20x20 PNG
图像,如下所示。
float rotation=loc1.bearingTo(loc2);
Matrix matrix=new Matrix();
matrix.postRotate(rotation);
Bitmap original=BitmapFactory.decodeResource(getResources(), R.drawable.dark_arrow_20);
Bitmap arrowHead=Bitmap.createBitmap(original, 0, 0, 40, 40, matrix, true);
final BitmapDescriptor bitmapDescriptor=BitmapDescriptorFactory.fromBitmap(arrowHead);
Marker marker = googleMap.addMarker(new MarkerOptions().position(new LatLng(lat1, lng1)).icon(bitmapDescriptor).title(vehicleName).snippet("Known @ " + timing + "," + strDate11));
marker.setAnchor(0.5f, 0.5f);
但是当我在高分辨率平板电脑上运行我的应用程序时,它会崩溃。 堆栈跟踪是
09-19 11:10:13.736 9079-9079/? E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.realtech.securetracknew, PID: 9079
java.lang.IllegalArgumentException: x + width must be <= bitmap.width()
at android.graphics.Bitmap.createBitmap(Bitmap.java:673)
at com.realtech.securetracknew.MainPage.a(Unknown Source)
at com.realtech.securetracknew.ab.onClick(Unknown Source)
at android.view.View.performClick(View.java:4466)
at android.view.View$PerformClick.run(View.java:18833)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:836)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)
at dalvik.system.NativeStart.main(Native Method)
我不知道导致错误的原因。有人请帮忙。