Настроить маркер местоположения на увеличение и уменьшение масштаба в Mapfield

H Я написал код для рисования двух пользовательских маркеров местоположения на MapField. Но когда я увеличиваю и уменьшаю масштаб, маркер местоположения имеет тот же размер, я хочу, чтобы маркер местоположения корректировался в соответствии с уровнем масштабирования. Может кто-нибудь, пожалуйста, помогите мне надеть это??

BR, Suppi

редактировать:

Пока я могу это сделать,

 mPointDest = new XYRect[mPoints.length];
            for (int i = 0; i < mPoints.length; i++) {
            XYPoint fieldOut = new XYPoint();
            convertWorldToField(mPoints[i], fieldOut);
            mIcon = Bitmap.getBitmapResource("location.png");
        int imgW = mIcon.getWidth();
        int imgH = mIcon.getHeight();
        mPointDest[i] = new XYRect(fieldOut.x - imgW / 2,
                    fieldOut.y - imgH, imgW, imgH);
            graphics.drawBitmap(mPointDest[i], mIcon, 0, 0);

и для увеличения:

protected boolean keyChar(char character, int status, int time) 
    {
        // 'i' will zoom in.
        if (character == 'i') 
        {

                mMapField.setZoom(Math.max(mMapField.getZoom() - 1, mMapField.getMinZoom()));
                return true;

        }
        // 'o' will zoom out
        if (character == 'o') 
        {

            mMapField.setZoom(Math.min(mMapField.getZoom() + 1, mMapField.getMaxZoom()));
            return true;
        }

        return super.keyChar(character, status, time);
    }

После этого я задаюсь вопросом, как перейти к настройке растрового изображения на основе уровня масштабирования. Может кто-нибудь, пожалуйста, дайте мне идею??

1 ответ

Масштабирование влияет только на саму карту. Если вы хотите изменить размер вашей собственной графики, вам нужно будет вручную масштабировать их. Например, вы можете либо включить в свой проект ресурс "location.png" нескольких размеров, а затем выбрать подходящий в зависимости от уровня масштабирования, либо использовать Bitmap.scaleInto() метод для увеличения вашего графика на лету.

Обратите внимание, что метод "на лету" приведет к более низкому качественному результату, чем включение оригиналов в нескольких размерах (я предполагаю, что у вас есть оригинал с высоким разрешением, который вы уменьшаете для включения в свой проект).

Другие вопросы по тегам