Я создаю анимированное приложение для 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
Вышеупомянутый код работает, но не на каждом экране, и в некоторых случаях даже не уверен, почему этот код работает, когда я думаю, что он не должен.
Я думаю, что у меня нет основного принципа / вычисления прямо на экранепозиционирование.Кто-нибудь знает правильный путь, пожалуйста, дайте несколько указаний.