0

我必须设计一个页面,页面的顶部应该有按钮,textview 等。页面的第二部分有一个视图,可以让一些动画球在点击上部按钮时四处移动。

它是我应该使用的相对布局吗?还是表面视图?

我不知道如何继续..有人可以帮忙吗..?

4

1 回答 1

0

最好的办法是用两个子视图定义布局,一个是自实现的SurfaceView类,另一个是RelativeLayoutor LinearLayout,以更适合您的需要为准。查看下面的这个小示例,了解如何创建一个RelativeLayout底部附有 aSurfaceView且顶部附有 a 的布局。

public void setupContentView() {
    RelativeLayout layout = new RelativeLayout(this);

    MySurfaceView mySurfaceView = new MySurfaceView(this);
    RelativeLayout xmlLayout = (Relativelayout) View.inflate(this, 
        R.layout.my_xml_file, null);

    int xmlId = 0x1234;
    xmlLayout.setId(xmlId);

    RelativeLayout.LayoutParams xmlParams= new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.MATCH_PARENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);
    xmlParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    xmlParams.addRule(RelativeLayout.CENTER_HORIZONTAL);

    RelativeLayout.LayoutParams surfaceViewParams= new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);
    surfaceViewParams.addRule(RelativeLayout.BELOW, xmlId);
    surfaceViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

    layout.addView(xmlLayout, xmlParams);
    layout.addView(mySurfaceView, surfaceViewParams);

    setContentView(layout);
}

这会创建一个从名为的 xml 文件扩展的布局my_xml_file,名称为xmlLayout. 它还创建了一个自我实现的SurfaceViewMySurfaceView,它调用它mySurfaceView。然后,它将使用该类的参数设置RelativeLayout.LayoutParams为两种布局。它将mySurfaceView下面的xmlLayout和两个高度都设置为,如果 xml 高度 = 0 WRAP_CONTENT,这将使mySurfaceView整个屏幕占据整个屏幕,反之亦然。然后,您可以在MySurfaceView课堂上以通常的方式进行绘制,并且可以根据需要设置 xml 文件。

祝你好运!很想听到任何成功的消息。

于 2013-03-12T14:41:00.573 回答