2012-12-31 23 views
3

我需要为我正在处理的项目初始化View和Canvas,但是在一个小时左右或者搜索后,我无法弄清楚什么使它们相等。Android:我如何初始化视图和画布?

这里是我到目前为止的代码:

public class DisplayMap extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     try { 
      displayMap(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (SlickException e) { 
      e.printStackTrace(); 
     } 

    } 

    public void displayMap() throws IOException, SlickException { 
     loadWorld("assets/World.tmx"); 
    } 

    public void loadWorld(String path) throws IOException { 
     View view = ?????; 
     Canvas canvas = ?????; 

     //World loading goes here 
    } 
    } 

因此,任何人可以请建议我如何初始化查看和帆布?还是我以完全错误的方式解决这个问题?

+0

你有没有为一个解析器TMX地图? –

+0

不,我无法工作/无法弄清楚。所以我正在制作我自己的解析器,并将它从我的C#项目中建模。 –

+0

如果你有自定义的视图,你可以初始化,如视图视图=新视图(上下文,属性集);的setContentView(视图); – Taruni

回答

1

您需要编写加载地图的自定义视图,然后在您的活动中使用自定义视图。

TMXView.java

public class TMXView extends View { 
    public TMXView(Context context) { 
    super(context); 
    // Load map 
    } 

    public void onDraw(Canvas canvas) { 
    // Draw the map on the canvas 
    } 
} 

在你的活动onCreate

View view = new TMXView(this); 
setContentView(view); 

欲了解更多信息,请参阅我的谈话上的自定义组件:http://www.sqisland.com/talks/android-custom-components/

+0

非常感谢!你认为你可以看看我的另一个问题吗?我们很难搞清楚。 http://stackoverflow.com/questions/14105504/android-how-can-i-overlay-this-level-on-the-background –