1

4 つの要素を持つマップビュー マーカーを作成したい: - 写真 (ユーザー) - 背景 - テキスト (ユーザー名) - 方向を示す矢印

OverlayItem.setMarker() はドローアブルのみを受け入れます。

4つのアイテムでドローアブルを作成するにはどうすればよいですか? または、View as marker を overlayItem に追加できますか?

何か案は?

4

1 に答える 1

1

私は解決策を見つけました。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);
于 2010-10-07T07:21:06.153 に答える