WedX - журнал о программировании и компьютерных науках

Rect содержит (x, y) не срабатывает

Я пытаюсь имитировать нажатие кнопки в пользовательском представлении Android. Для этого мне нужно использовать метод Rect.contains(), но независимо от того, где я нажимаю на прямоугольник, он никогда не срабатывает и не возвращает true.

 rect = new Rect(0, 0, 720, 205);

Примером координат клика является (401,103), это возвращает false.

if(rect.contains((int)event.getX(),(int)event.getY())){
                    Log.w("CLICKED","");
                }

"CLICKED" никогда не регистрируется. Я прочитал документы, и там написано «слева ‹= x ‹ справа и сверху ‹= y ‹ снизу», чтобы вернуть true

в этом примере 0‹=401‹720 и 0‹=103‹205, что верно, но не работает.

Любая помощь приветствуется


  • Установлено ли событие на экране или в любом другом представлении? 06.01.2018
  • Не уверен, что вы имеете в виду, но он установлен в методе onTouchEvent в пользовательском представлении. 06.01.2018

Ответы:


1

getX() и getY() возвращают координату относительно представления, которое отправляет событие. Если начало этого представления не равно 0, 0, то оно может не удовлетворять условию rect.contains((int)event.getX(),(int)event.getY()).

Однако вы можете использовать getRawX() и getRawY(), которые возвращают абсолютную координату относительно экрана.

Возможно, это так

pic1.png

06.01.2018
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

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

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]