С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
14 / 15 / 2
Регистрация: 21.04.2012
Сообщений: 192

Обработка перемещения объекта на экране - MotionEvent.ACTION_MOVE

23.04.2014, 01:33. Показов 2586. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Когда перемещаю картинку к краю экрана, то её размер уменьшается, а после совсем исчезает.
Нужно сохранять размер постоянным. Как?
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
droid.setOnTouchListener(new View.OnTouchListener() {
 
                @Override
                public boolean onTouch(View v, MotionEvent event) {
 
                    layoutParams = (LayoutParams) v.getLayoutParams();
                    // обрабатываем позиции
                    switch (event.getAction()) {
                    // нажал на экран
                        case MotionEvent.ACTION_DOWN: {
                            int[] hompos = new int[2];
                            droidpos = new int[2];
                            home.getLocationOnScreen(hompos);
                            home_x = hompos[0];
                            //home_y = hompos[1];
                        }
                            break;
                        // перемещаем по экрану яблоко за пальцем
                        case MotionEvent.ACTION_MOVE: {
                            int x_cord = (int) event.getRawX();
                            //int y_cord = (int) event.getRawY();
                            /*if (x_cord > (windowwidth - droid.getWidth())) {
                                x_cord = windowwidth - droid.getWidth();
                            }*/
                            /*if (y_cord > (windowheight - (windowheight / 32))) {
                                y_cord = windowheight - ((windowheight / 32) * 2);
                            }*/
 
                            layoutParams.leftMargin = x_cord;
                            //layoutParams.topMargin = y_cord;
                            //droid.getLocationOnScreen(droidpos);
                            v.setLayoutParams(layoutParams);
                            /*if ((((x_cord - home_x) <= ((windowwidth / 24) * 5)) && ((home_x - x_cord) <= ((windowwidth / 24) * 4)))
                                    /*&& ((home_y - y_cord) <= ((windowheight / 32) * 5))) {
                                v.setVisibility(View.GONE);
                                finish();
                            }*/
                        }
                            break;
                        // убрал палец с экрана, возаращаем на стартовую позицию
                        case MotionEvent.ACTION_UP: {
                            int x_cord1 = (int) event.getRawX();
                            //int y_cord2 = (int) event.getRawY();
                            /*if ((((x_cord1 - home_x) <= ((windowwidth / 24) * 5)) && ((home_x - x_cord1) <= ((windowwidth / 24) * 4)))
                                    && ((home_y - y_cord2) <= ((windowheight / 32) * 5))) {
                                System.out.println("home overlapps");
                                System.out.println("homeee" + home_x + "  " + (int) event.getRawX() + "  "
                                        + x_cord1 + " " + droidpos[0]);
                                System.out.println("homeee" + home_y + "  " + (int) event.getRawY() + "  "
                                        + y_cord2 + " " + droidpos[1]);
                            } else {
                                layoutParams.leftMargin = (windowwidth / 24) * 10;
                                layoutParams.topMargin = (windowheight / 32) * 8;
                                v.setLayoutParams(layoutParams);
                            }*/
                            layoutParams.leftMargin = 0;
                            v.setLayoutParams(layoutParams);
                        }
                    }
Миниатюры
Обработка перемещения объекта на экране - MotionEvent.ACTION_MOVE   Обработка перемещения объекта на экране - MotionEvent.ACTION_MOVE  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2014, 01:33
Ответы с готовыми решениями:

Чувствительность MotionEvent.ACTION_MOVE
Здравствуйте! В SurfaceView сделал тайлы, у них нужно обрабатывать нажатия и перемещение. Проблема в том, что MOVE слишком чувствителен и...

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

Listener перемещения объекта
Сколько дней рою интернет, никак не могу найти. Я при помощи ObjectAnimator перемещаю объект(ImageView) мне нужно отследить каждую...

4
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
23.04.2014, 07:58
это чо апи так делает само или ты там чото не так написал
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
23.04.2014, 10:47
кладем все это дело в FrameLayout, далее по move меняем не margin, а делаем setX, setY или же offsetLeftAndRight, offsetTopAndBottom и все будет замечательно
1
14 / 15 / 2
Регистрация: 21.04.2012
Сообщений: 192
24.04.2014, 02:47  [ТС]
NiRamz, setX() сработало. Только пришлось версию АПИподнимать до 11.
Есть ли способ для восьмой версии?
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
24.04.2014, 11:12
offsetLeftAndRight, только туда надо передавать не то что вытаскиваете из тача, а дистанцию на которую двигаете.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.04.2014, 11:12
Помогаю со студенческими работами здесь

Зацикливание перемещения объекта
Здравствуйте! Подскажите люди добрые, как зациклить объект в Unity, а то он у меня только в одну сторону перемещается, а обратно не хочет....

Маркер перемещения объекта
Всем привет! Недавно с Solidworks`а перешел на NX (Siemens Unigraphics). И в нем есть такая замечательная функция &quot;Динамическое...

Ограничение перемещения объекта
Добрый вечер! import flash.events.MouseEvent; var arr:Array = new Array(); arr.push(kn_1_kn); arr.push(kn_2_kn); ...

Проблема со скоростью перемещения объекта
Я пишу игру змейку и возникла проблема в алгоритме передвижения когда частей больше чем 1.Проблема в строчке position.x = position.x +...

Ограничение области перемещения объекта
Всем доброго времени суток. У меня есть вот такой вот код (пример кода): &lt;!-- Настройка общего размера страницы --&gt; &lt;html...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru