我正在尝试编写一个超出我能力范围的程序。该程序应该检索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的类是在Activity的onCreate中创建的,如下所示:setContentView(new Panel(this));内部类被创建为一个实例,即Panel的构造函数的Thread thread = new Thread()。
来自GPS芯片的数据来自活动中的方法。问题是,我如何在“Panel”和onDraw()中获取这些对象?在onDraw()中,Activity(我的GPS数据)中的对象无法访问。
我已经尝试将SurfaceView创建为一个实例,我尝试将SurfaceView移出,因此它是一个单独的类(线程仍然在里面)。我已经尝试在面板中实现接口这些总是崩溃,调试数据我无法理解。
任何帮助都非常感激。
答案 0 :(得分:0)
我认为如果你将GPS数据包装到类foo中,并将对foo实例的引用传递给Panel上的构造函数,那么你应该拥有所需的一切。
答案 1 :(得分:0)
如果内部类在Activity类中声明(侦听gps数据),那么内部类应该能够访问Activity类的成员变量。 它不是很好,但它应该有效。