Как определить, когда нарисовано место - PullRequest
0 голосов
/ 27 ноября 2010

Я работаю над приложением, в котором есть холст с кучей маленьких изображений, которые пользователь может перетаскивать, и «ящик», из которого пользователь будет перетаскивать объекты для создания новых объектов изображения или перетаскивания в него существующего изображения., и это удалит это.

Как лучше всего определить, касался ли пользователь области или изображения на экране?Первое, что приходит на ум, - это, очевидно, сравнение координат касания с координатами каждого объекта, но это кажется немного громоздким.Есть ли лучший или встроенный способ?

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 ноября 2010

В классе View в Android есть onClickListener, который вы можете использовать для определения, когда пользователь нажимает на View.Если вы реализуете свои «изображения» (как вы их называете) как «Представления», вы можете просто добавить прослушиватель щелчков к каждому из них, чтобы найти, какое представление было нажато.Добавьте слушателя так:

// Get a reference to the view from xml (or if you 
// have created it dynamically, just use that)
View imageView = findViewById(R.id.my_view);
imageView.setOnClickListener(new OnClickListener()
{

  @Override
  public void onClick(View v)
  {
    // Do stuff with view (the View v that is passed is the View that was touched)
    doStuff(v);  
  }
});
0 голосов
/ 27 ноября 2010

Это зависит от того, насколько сложен ваш интерфейс, но, в основном, если вы переопределите onTouchEvent, то получите координаты, на которые ссылались.

Для того, чтобы найти то, что было затронуто, не проходя через каждый объектВы могли бы найти способы упростить это, например, разделив ваш экран на, возможно, 8 сеток, и узнать, в какой сетке (ях) находится каждый объект, так что при касании экрана вы можете найти объекты, которые могут быть в этомсетки, и поэтому у вас будет меньше предметов для просмотра.

Для краткого ответа о том, как использовать onTouchEvent, вы можете посмотреть:

http://androidforums.com/android-games/210019-touch-event-image-made-canvas.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...