Программно позиционирование объекта в макете - PullRequest
0 голосов
/ 20 мая 2019

Я создаю анимированное приложение для Android.Часть требования состоит в том, чтобы программно расположить вид изображения вне видимой области экрана, и при нажатии кнопки изображение будет перемещаться в середину (центральный горизонт и вертикаль) экрана с любого направления с предопределенным углом (от 0 до90, 315 градусов и т. Д.).Я должен расположить изображение точно так, чтобы оно не было видно с экрана, поэтому при переводе 50% p оно сместится на 50% относительно высоты или ширины родительского элемента в середину

Однако у меня точно проблемыПозиционируйте изображение, используя imageview.setX и setY, особенно при тестировании на телефон разных размеров.

Например: чтобы скрыть изображение на левой стороне, я попытался указать координату X = 0 - imageWidth (я также попробовал X - halfImageWidth).например, установка X = 0 покажет половину изображения.

Второй пример: чтобы скрыть изображение с правой стороны, я попытался установить координату X = screenWidth (отображается половина изображения), x = screenWidth +halfImageWidth и x = screenWidth + imageWidth.Некоторые находятся слишком далеко от экрана, и перевод становится неточным.

Текущий код для скрытия изображения, оставленного за кадром

        float offset = screenWidth/2 * -1;
        img.setX(offset);
        img.setY(imgY); //Y coordinate no change

Текущий код для скрытия изображения прямо с экрана

        float offset = screenWidth;
        img.setX(offset);
        img.setY(imgY); //Y coordinate no change

Вышеупомянутый код работает, но не на каждом экране, и в некоторых случаях даже не уверен, почему этот код работает, когда я думаю, что он не должен.

Я думаю, что у меня нет основного принципа / вычисления прямо на экранепозиционирование.Кто-нибудь знает правильный путь, пожалуйста, дайте несколько указаний.

...