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

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

Войти
Регистрация
Восстановить пароль
 
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 345
#1

Получить касание при FLAG_NOT_TOUCHABLE - Android

18.08.2016, 16:44. Просмотров 162. Ответов 0
Метки нет (Все метки)

WindowManager на весь экран. Я его создавал исключительно, чтобы перехватить нажатие даже там, где есть навигационная панель. Установлен флаг FLAG_NOT_TOUCHABLE, что даёт кликабельность всего за окном, но нажатия так и не ловим. Помогите сделать, чтобы ловились нажатия. Если поменять FLAG_NOT_TOUCHABLE на другой, то само собой нажатия ловятся. Но так мне не пойдёт.
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
static WindowManager.LayoutParams createLayoutParams(Context context) {
        //Resources res = context.getResources();
        final WindowManager.LayoutParams params =
                new WindowManager.LayoutParams(
                        MainActivity.xDisplay, MainActivity.yDisplay + MainActivity.navBarHeight, // Устанавливаем ПОЛНЫЕ размеры
                        TYPE_TOAST,
                        FLAG_NOT_FOCUSABLE
                                | FLAG_NOT_TOUCHABLE
                                | FLAG_LAYOUT_NO_LIMITS
                                | FLAG_LAYOUT_INSET_DECOR
                                | FLAG_LAYOUT_IN_SCREEN
                                | FLAG_HARDWARE_ACCELERATED,
                        TRANSLUCENT
                );
        params.gravity = Gravity.LEFT | Gravity.TOP;
        return params;
    }
 
@Override
    public boolean onTouch(View v, MotionEvent event) {
        x = event.getX();
        y = event.getY();
 
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN: // нажатие
                Log.d("Touch", sDown + "\n" + sMove + "\n" + sUp);
                sDown = "Down: " + x + "," + y;
                sMove = ""; sUp = "";
                break;
            case MotionEvent.ACTION_MOVE: // движение
                sMove = "Move: " + x + "," + y;
                break;
            case MotionEvent.ACTION_UP: // отпускание
            case MotionEvent.ACTION_CANCEL:
                sMove = "";
                sUp = "Up: " + x + "," + y;
                break;
        }
        return true;
    }
Добавлено через 9 минут
Я что-то ещё не понимаю, как можно рисовать тогда на нав баре и на получать оттуда нажитие, а из других областей получать. Ну что за блин.
http://prntscr.com/c7b2r6
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2016, 16:44     Получить касание при FLAG_NOT_TOUCHABLE
Посмотрите здесь:

Сенсорный дисплей не правильно реагирует на касание. Сброс настроек Android
При попытке получить слепок MD5 - получаю SHA1 Android
Как при обновлении виджета получить настройки и применить их Android
Получить id записи в бд при нажатии на пункт списка Android
Как при выборе пункта меню получить значение элемента формы? Android
Как получить высоту текста при рисовании? Android
Android Касание в EditText
Копирование текста во время касание Android
Получить доступ к картинке, при помощи переменной с именем файла Android
Android Каким образом мультитач определяет второе и последующее касание?
Некорректная реакция на касание элемента GridView Android
Пропустить касание через окно Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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