Форум программистов, компьютерный форум CyberForum.ru

Определить область касания и чувствительность (тачпад на экране) - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Не отображается карта на 6.0 http://www.cyberforum.ru/android-dev/thread1765543.html
Всем доброго времени суток. Думаю, из названия темы трабла понятна, на 5.1.1 всё в поряде, карта отображается с объектами, на 6.0 серый фон и всё. Сервиса обновил, всё проверил, всё включено. Добавлено через 21 минуту А да, на эмулятор 6.0 всё в поряде.
Программирование Android Рестарт при прерывании работы приложения сторонней службой прошу провести ликбез в этом направлении. activity1 запускает activity2, все работает. activity2 на паузе сохраняет свое состояние, на резюме восстанавливает... тут подкрался входящий вызов и при возврате в приложении снова открылось activity1... никаких ошибок при этом не было. попробовал несколько раз звонить - ничего не прерывалось. при обычном переключении различных приложений тож все... http://www.cyberforum.ru/android-dev/thread1765300.html
Как листать фрагменты в ViewPager по кнопке? Программирование Android
Доброго дня. Есть фрагменты, Листаемые в ViewPager'е. Помимо возможности перелистывания фрагментов жестами (и в шапке, во вкладках) хотелось что бы аналогичные действия срабатывали по кнопкам "Следующий"/"Предыдущий". Добавил обработчик события на кнопку но далее не понимаю что надо сделать... Класс фрагмента: public class EquipmentFragment extends Fragment { private Button...
Программирование Android Переключение между камерами
Проблема в том, что по нажатию на switch алгоритм срабатывает,но на surfaceview все еще отображается изображение с задней камеры,а при перезагрузке в приложение отрисовывается уже верно. Прошу совета как исправить сей конфуз. mySwitch = (Switch) findViewById(R.id.switch1); mySwitch.setChecked(false); mySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() { ...
Программирование Android Получение xml файла из бинарных данных http://www.cyberforum.ru/android-dev/thread1764930.html
Пишу андроид-клиент, который взаимодействует с веб-сервером. Веб-сервер 1С преобразует XML файл в тип hexBinary (http://www.w3.org/2001/XMLSchema) и отравляет на клиента. Правильно ли я понимаю, что теперь на клиенте нужно преобразовать эти двоичные данные в XML файл и уже дальше работать с файлом? Если это так, то подскажите, пожалуйста, как выполнить такое преобразование, чтобы получить файл?...
Программирование Android Не хочет работать программа, что делать? Android Studio + VK API Сделал программу в Android Studio, использовал VK api. Вроде бы, авторизация должна работать. Я скомпилировал apk и установил на телефон, но при запуске пишет следующие(пишет в activity авторизации): {"error":"invalid_request","error_description":"sdk_fingerprint is incorrect"} . Что это значит? Я в настройках своего приложения ВК прописал, как положено: Main Activity для Android, Название пакета... подробнее

Показать сообщение отдельно
Turalll
-1 / 2 / 0
Регистрация: 03.06.2010
Сообщений: 91

Определить область касания и чувствительность (тачпад на экране) - Программирование Android

18.06.2016, 23:25. Просмотров 358. Ответов 0
Метки (Все метки)

есть на сцене спрайт , который можно двигать касанием по нему. Хочу внизу экрана определить область , касаясь которой, я смогу двигать этот спрайт. В общем типо точпада на экране. Пробую делать это средствами движка andengine , но мои поиски не привели ни к одному методу в этом движке , с помощью которого я хотя бы смог бы кликнуть на спрайт нажатием на указанную область.. подскажите какие методы помогут это реализовать.

Добавлено через 6 часов 1 минуту
дополню вопрос. вот пример https://gyazo.com/39b76d3e992dba4c369f428c9459c8a1 этот смайл должен двигаться , когда я буду перемещать палец по этой черной области (типо тачпад на экране) . Пробовал возможности движка andengine и ничего готового не нашел, везде нужно прикоснуться к самому спрайту. Как под себя переделать аналоговое управление джостиком, который в движке andengine я тоже не понял, дошел до того, что там надо менять всю конструкцию метода. Решил самому написать всё это. Следующее, что нашел на просторах интернета, это Canvas. Сделал всё как тут https://habrahabr.ru/sandbox/27511/. на экране есть этот смайл , который перерисовывается там где я кликну. Вот тут я получаю координаты касания
Java
1
2
3
4
5
6
7
public boolean onTouchEvent(MotionEvent event) { 
            if(event.getAction() == MotionEvent.ACTION_DOWN) { 
                touchX = event.getX(); 
                touchY = event.getY(); 
                invalidate(); } 
            return true; 
        }
и перерисовываю смайл в новых координатах.
Но мне нужно , чтобы касания отлавливались только в определенной области экрана и далее я их буду подставлять и без invalidate() (пока не пробовал без него рисовать) перерисовывать этот смайл, только придется как то корректировать эти координаты. Ведь нужно подставлять не сами координаты , а изменение координаты. Т.е. нажал на область тачпад и начинаю двигать пальцем и будет отслеживаться разница между координатами и непрерывно передаваться для рисования . буду прибавлять к имеющимся координатам смайла эту разницу , а n-кратное увеличение или уменьшение этих координат позволит регулировать чувствительность тачпада. И еще решается такая проблема, которую я видел в начале, если коснуться смайлика пальцем и двигать его то смайлик начинает отставать от пальца, не достаточно быстро перерисовывается что ли..

Так вот нужна помощь с тем, чтобы определить область с которой считываются координаты касания, вернее изменения этой координаты от точки касания по движению. Спасибо, буду рад любому указанию к нужным методам и способам. или же может кто посоветует более разумный или эффективный способ реализации моей задачи.

Добавлено через 4 часа 0 минут
оказалось всё не так то и тяжело. правда я еще не сделал чтобы клики ловились в определенной области. но уже прогресс. при нажатии на любую область экрана этот смайл начинает двигаться и повторять мои движения, но если поставить курсор на смайл и начать двигаться, чтобы заметить насколько отрисовка его отстает от движения курсора , то заметно , что это отставание создает дискомфорт. вот кусок кода
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
@Override
        protected void onDraw(Canvas canvas) {
            // код рисующий графику
            Bitmap mybitmap = BitmapFactory.decodeResource(getResources(),R.drawable.face_box);
            // рисуем myBitmap на канве в координатах 10, 10
            canvas.drawBitmap(mybitmap, touchX, touchY, null);
 
        }
 
        public boolean onTouchEvent(MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    korX = touchX;
                    korY = touchY;
                    initX = event.getRawX();
                    initY = event.getRawY();
                   return true;
                case MotionEvent.ACTION_MOVE:
                    touchX = korX + (int) (event.getRawX() - initX);
                    touchY = korY + (int) (event.getRawY() - initY);
                    invalidate();
                return true;
            }
            return false;
        }
touchX и touchY это новые координаты, по которым метод invalidate() перерисовывает этот смайл, вот только медленно это происходит. как же это ускорить, какими способами рисовать?
Замечу что метод onTouch в котором реализовано и то что я сделал и вообще в нем реализуется касание по объекту и последующее его перемещение создает это отставание в прорисовке ( я так думаю) , потому что это отставание наблюдается везде где он используется. GestureDetector может имеет другую реализацию, попробую его использовать.. а что вы предложите ?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru