14 / 15 / 2
Регистрация: 21.04.2012
Сообщений: 192

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

23.04.2014, 01:33. Показов 2630. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru