Я спал о проблеме и придумал (если я сам так не говорю) блестящее, относительно простое и элегантное решение. Извините, что у меня есть собственный рог, но я был в полном восторге от того, что смог придумать это.
Если кто-то думает об использовании этого метода, есть пара условий, которые сделали его хорошим выбором. Во-первых, все мои объекты - это объекты для рисования с предопределенными местоположениями, использующие метод setBounds (int, int, int, int), все объекты также хранят свои собственные координаты для местоположения для рисования на холсте, и все объекты вызываются в хеш-картах, что позволяет мне вызывать и обрабатывать все существующие объекты.
Теперь я размышлял о том, что сказал Кабуко, и как это бесполезно рисовать огромный холст, и как я сталкиваюсь с проблемами события щелчка, вот когда я придумал это.
когда событие касания экрана происходит у края экрана, вызывается пользовательский метод Scroll (), который проходит по каждому объекту и корректирует сохраненные координаты местоположения объекта в зависимости от того, в каком направлении пользователь пытается прокрутить. после того, как он увеличивает местоположение объектов, он (параллельно) увеличивает пару переменных для смещения x и y. Затем это смещение учитывается в координатах событий касания, поэтому объекты по-прежнему можно выбирать прикосновением независимо от положения, на котором прокручивается экран.
тогда для производительности просто оператор if делает так, чтобы рисование вызывалось только для объекта, если координаты этих объектов попадают в диапазон экрана.
Извините за злорадство, но я действительно удивлен и впечатлен этим, ха-ха. Я действительно только около месяца программирую, и у меня почти есть полностью функциональная 2D-стратегия!
Java для чайников окупилась, лол.