Как правильно масштабировать маркеры на Android и правильно устанавливать shadow и onTap - PullRequest
3 голосов
/ 17 ноября 2009

Я масштабирую маркеры в MapView со следующим кодом

OverlayItem oi = new OverlayItem(point,"Title", "Desc");
oi.setMarker(getCustomMarker(0.5f, 0.5f));
itemizedOverlay.addOverlay(oi);

и

private BitmapDrawable getCustomMarker(float scaleWidth, float scaleHeight){
    int width = originalMarker.getWidth();
    int height = originalMarker.getHeight();

    Matrix matrix = new Matrix();
    matrix.postScale(scaleWidth, scaleHeight);
    Bitmap bitmap = Bitmap.createBitmap(originalMarker, 0, 0, width, height, matrix, true);

    BitmapDrawable bm = new BitmapDrawable(bitmap);
    bm.setBounds(0,0,bitmap.getWidth(),bitmap.getHeight());

    return bm;
}

, который работает, но тень под маркером имеет неправильное смещение при масштабировании. Также; я переопределяю public boolean onTap(int index) в ItemizedOverlay, чтобы обнаруживать нажатия на маркеры, но это кажется неточным. Я могу щелкнуть некоторый диапазон за пределами маркера и все еще активировать OnTap ...

1 Ответ

1 голос
/ 19 августа 2010

Я использую это, чтобы установить тень

int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();
drawable.setBounds(-w / 2, -h, w / 2, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...