1
我想創建一個MapView類標記與4個要素: - (的用戶)的圖片 - 背景 - 文本(用戶名) - 箭頭以顯示一個方向如何創建一個自定義的android地圖標記?
OverlayItem.setMarker()只接受一個可繪製。
如何創建4個項目的drawable?或者我可以添加視圖作爲標記overlayItem?
有什麼想法?
我想創建一個MapView類標記與4個要素: - (的用戶)的圖片 - 背景 - 文本(用戶名) - 箭頭以顯示一個方向如何創建一個自定義的android地圖標記?
OverlayItem.setMarker()只接受一個可繪製。
如何創建4個項目的drawable?或者我可以添加視圖作爲標記overlayItem?
有什麼想法?
我找到了解決辦法。 我創建了一個BitmapDrawable
下面是代碼
Bitmap photo = ((BitmapDrawable)mActivity.getResources().getDrawable(R.drawable.user_picture_dummy)).getBitmap();
Bitmap returnedBitmap = Bitmap.createBitmap(Global.dipToPx(40), Global.dipToPx(67), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
mBackground.setBounds(0, Global.dipToPx(10), canvas.getWidth(), canvas.getHeight());
mBackground.draw(canvas);
m.postScale((float)Global.dipToPx(30)/(float)photo.getWidth(), (float)Global.dipToPx(30)/(float)photo.getHeight());
m.postTranslate(Global.dipToPx(5), Global.dipToPx(15));
canvas.drawBitmap(photo, m, paint);
m.reset();
canvas.drawText(Global.DateToTimeString(adv.getStartDateMS()), Global.dipToPx(20), Global.dipToPx(10), paint);
mat.postRotate((float)bearingTo(adv.getDepGeoPoint(), adv.getArrLocationObj().getGeoPoint()), mDirection.getWidth()/2, mDirection.getHeight()/2);
mat.postTranslate(canvas.getWidth()-mDirection.getWidth(), canvas.getHeight()-mDirection.getHeight()-Global.dipToPx(12));
canvas.drawBitmap(mDirection, mat, paint);
mat.reset();
BitmapDrawable drawable = new BitmapDrawable(returnedBitmap);
boundCenter(drawable);
OverlayItem item = new OverlayItem(adv.getDepGeoPoint(), adv.getOwnerObj().getUserName(), adv.getOwnerObj().getUserName());
item.setMarker(drawable);
我認爲這是** ** inclomplete例如'mat'從哪裏來?它有什麼類型? – Jonas 2010-12-01 15:08:49