Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
#1

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

23.04.2014, 01:33. Просмотров 1391. Ответов 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);
                        }
                    }
0
Миниатюры
Обработка перемещения объекта на экране - MotionEvent.ACTION_MOVE   Обработка перемещения объекта на экране - MotionEvent.ACTION_MOVE  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2014, 01:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка перемещения объекта на экране - MotionEvent.ACTION_MOVE (Программирование Android):

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

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

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

Задержка отрисовки Canvas. MotionEvent - Программирование Android
Здравствуйте. Написал простейшую программу рисующую жёлтую точку при касании экрана. Как только начинаю водить пальцем, точка начинает...

OnTouch MotionEvent в андроид выполняется только один раз - Программирование Android
Так вот сам вопрос: MotionEvent.ACTION_UP выполняется только первый раз, что при использовании if, что case. Кликаем по копке звук...

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

4
kirawa
34 / 34 / 1
Регистрация: 12.11.2013
Сообщений: 338
23.04.2014, 07:58 #2
это чо апи так делает само или ты там чото не так написал
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
23.04.2014, 10:47 #3
кладем все это дело в FrameLayout, далее по move меняем не margin, а делаем setX, setY или же offsetLeftAndRight, offsetTopAndBottom и все будет замечательно
1
8VAid8
14 / 14 / 2
Регистрация: 21.04.2012
Сообщений: 190
24.04.2014, 02:47  [ТС] #4
NiRamz, setX() сработало. Только пришлось версию АПИподнимать до 11.
Есть ли способ для восьмой версии?
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
24.04.2014, 11:12 #5
offsetLeftAndRight, только туда надо передавать не то что вытаскиваете из тача, а дистанцию на которую двигаете.
0
24.04.2014, 11:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2014, 11:12
Привет! Вот еще темы с ответами:

Соединить линией 2 объекта с возможностью перемещения - Delphi
Доброе время суток. у меня есть 2 Edit могу ли я их соединить линией ? да так, что бы перемещая любой из них соединение линией не...

Ограничить область перемещения объекта по форме - C#
public partial class Form1 : Form { public Form1() { InitializeComponent(); } ...

Анимация перемещения объекта (кнопки) по форме - C# WPF
Нужна анимация перемещения к примеру кнопки Button в окне. Как это сделать на C#? На XAML не нужно. Нужно переместить плавно кнопку с...

Определение скорости перемещения объекта по видео фрагментам - Механика
Доброе время суток, пишу курсовую на тему &quot;Определение скорости перемещения объекта по видео фрагментам&quot;, но нигде не могу найти литературу...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru