Я пытаюсь перетащить вид на экранеОпределить вид, который вызвал сенсорное событие
FrameLayout main = (FrameLayout) findViewById(R.id.main_view);
final Ball bigball;
bigball = new Ball(this,50,50,25, 0xFFFF0000);
main.addView(bigball);
Это рисует красный круг на моем экране. Как и где мне нужно реализовать мою обработку сенсорного экрана, если я хочу, только только, чтобы вызвать, если кто-то касается красного круга, а не оставшуюся часть экрана?
Ball.Java отдельный класс:
public class Ball extends View
Я знаю, что я мог проверить координаты, где пользователь прикоснулся к экрану, а затем сравните, что, где круг, но должен быть способ просто проверьте идентификатор или другую ссылку на круг, не так ли?
Все, на что я смотрел и пытался до сих пор запускать свой код, независимо от того, где сенсорный экран был запущен или остановлен. (Так что я могу переместить мяч, я могу рисовать линии на экране пальцем и т. Д. Но я не могу сказать, касался ли я красного круга.)
Может ли кто-нибудь объяснить это мне простыми словами? (И простите меня за использование одинаковых простых слов в моем вопросе. Я больше не чувствую, что знаю, что я здесь делаю, и теперь я просто не буду использовать большие слова, такие как «Слушатель» или «Событие».
Спасибо.
Да, я tohght это должно работать, тоже. – Alex
Но функция вызывается независимо от того, где я нажимаю Возможно ли, что мой мяч просто занимает весь экран, и я гонялся за неправильным типом ошибки? Это изображение, сделанное на холсте: – Alex
открытый класс Ball extends Посмотреть { частный поплавок x; private float y; закрытый финал int r; private final Paint mPaint = new Paint (Paint.ANTI_ALIAS_FLAG); public Ball (контекстный контекст, float x, float y, int r, int bcolor) { супер (контекст); mPaint.setColor (bcolor); this.x = x; this.y = y; this.r = r; } @Override защищенная пустота onDraw (холст холста) { super.onDraw (холст); canvas.drawCircle (x, y, r, mPaint); – Alex