Как получить Transformmed значение FrameLayout после масштабирования в Xamarin.Android - PullRequest
0 голосов
/ 08 ноября 2018

Как я могу получить точное значение X и Y для слоя плитки (FrameLayout) после масштабирования?Мне нужно значение TopLeft Corner X и Y после масштабирования или масштабирования FrameLayout.

Пожалуйста, помогите мне получить значения в Xamarin.Android.

У меня есть карта OSM , это FrameLayout.Я добавил плиточный слой (FrameLayout) с плитками, который является ImageView на карту (FrameLayout).Теперь я масштабирую или увеличиваю размер кадра.

Я использовал GetLocationOnScreen для родительского и дочернего вида, чтобы получить точное местоположение.
Я получил точное местоположение до уровня зумирования 2. На уровне зумирования 3 мы удалили несколько тайлов, тайл начинается с 2,1, я получил неправильные значения в GetLocationOnScreen.Он возвращает эту позицию тайла, но мне нужно преобразованное значение после масштабирования.

Или, может быть, есть какой-нибудь другой способ найти точное местоположение FrameLayout после масштабирования?

    int[] childView = new int[2];
    int[] rootView = new int[2];

    foreach (var tile in TileLayer.Tiles)
    {
        tile.ImageView.GetLocationOnScreen(childView);
    }

    TileLayer.Map.GetLocationOnScreen(rootView);

    int topLeftX = childView[0] - rootView[0];
    int topLeftY = childView[1] - rootView[1];
...