2

そのため、マップ上にマーカーを配置するためにitemizedoverlayを拡張するcustomoverlayがあります。私の問題は、ドローアブルの境界がboundCenterBottmおよびboundCenterの値と異なるようにマーカーを調整したいということです(私の場合、boundLeftBottomのようなものが存在する場合はそれが必要です)。どうすればこれを達成できますか?これを実現したいのは、左下隅を指すドローアブルがあるからです。

私はウェブドライを検索しました、どんな助けでも大歓迎です。

左側に透明なスペースを作ることを提案することは受け入れられません。これは不適切な回避策だと思います

編集;

私はこれで終わった:

public class CustomOverlay extends ItemizedOverlay<CustomOverlayItem> {
    private ArrayList<CustomOverlayItem> mOverlays = new ArrayList<CustomOverlayItem>();
    private Context mContext;

    public CustomOverlay(Drawable defaultMarker, Context context) {
//      super(boundCenterBottom(defaultMarker));
        super(defaultMarker);
        defaultMarker.setBounds(0, -defaultMarker.getIntrinsicHeight(), defaultMarker.getIntrinsicWidth(), 0);  //TODO experiment
        mContext = context;
    }

これは正しいですが、コーナーでのグラフが完全ではなく、修正するのが面倒な3つの異なるドローアブルがあるため、問題は修正されませんでした(したがって、最終的な解決策は、ドローアブルを修正することです)。

4

1 に答える 1

3

boundCenterBottomとboundCenterは、ドローアブルでsetBoundsを呼び出すヘルパー関数です...自分で呼び出すことができます。

左下の場合、次のようになります。

drawable.setBounds(0, -drawable.getIntrinsicHeight(), drawable.getIntrinsicWidth(), 0);

しかし、それは私の頭から離れていました。

于 2011-12-13T10:55:02.870 に答える