Я пытаюсь написать программу, которая немного выходит за рамки моих возможностей. Программа должна извлекать данные GPS и отображать их на красивой странице графики.Я могу получить доступ к данным GPS, реализовав необходимые интерфейсы слушателя.Я могу отображать хорошую графику, используя сложную структуру программы, использующую SurfaceView.Но когда я пытаюсь объединить эти два функционала (входящие данные и графику), вещи распадаются.
Графическая структура программы в схематической форме:
Activity реализует несколько gpsStatus / Locationинтерфейсы
Anonymous inner class Panel extends SurfaceView implements SurfaceHolder.Callback
onDraw() which does the drawing
inner (instance) class Thread
run() which does the canvas locking and calls onDraw()
Я надеюсь, что это имеет смысл.Я получил эту структуру с сайта Droidnova, учебника по 2D-графике.Графика нарисована в отдельной теме.Я смог получить из этого очень приятную плавную графику.
Класс "Panel", который расширяет SurfaceView, создается в onCreate для Activity, например: setContentView (new Panel (this));Внутренний класс создается как экземпляр, то есть Thread thread = new Thread () конструктором Panel.
Мои данные с чипа GPS поступают через методы в Activity.Проблема в том, как мне получить эти объекты внутри «Панели» и в onDraw ()?Изнутри onDraw () объекты в Activity (мои данные GPS) недоступны.
Я попытался создать SurfaceView в качестве экземпляра, я попытался переместить SurfaceView, чтобы он стал отдельным классом (с нитью еще внутри).Я пытался реализовать интерфейсы в Panel. Они всегда дают сбой, с отладочными данными, которые я не могу понять.
Любая помощь высоко ценится.