是否可以在Android上的单个页面上一起使用View和Activity?

时间:2013-03-12 14:15:41

标签: android

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

我应该使用相对布局吗?或表面视图?

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

1 个答案:

答案 0 :(得分:0)

您最好的选择是使用两个子视图定义布局,一个是自我实现的SurfaceView类,另一个是RelativeLayoutLinearLayout,以适合您的需求为准更好。请查看下面的这个小示例,了解如何创建一个布局,其底部附加RelativeLayout,顶部附加SurfaceView

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);
}

这将创建一个从名为my_xml_file的xml文件中膨胀的布局,名称为xmlLayout。它还会创建一个名为SurfaceView的自我实现的MySurfaceView类,它称之为mySurfaceView。然后,它使用RelativeLayout.LayoutParams类将参数设置为两个布局。它将mySurfaceView设置为xmlLayout以下,并且两个高度都设置为WRAP_CONTENT,如果xml高度= 0则会使mySurfaceView占据整个屏幕,反之亦然。然后你可以在MySurfaceView类中绘制,但是你可以正常绘制,并且可以设置你想要的xml文件。
祝你好运!很想听听任何成功。